$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r84202 - in sandbox/math/libs/math/doc: . html html/indexes html/math_toolkit html/math_toolkit/airy html/math_toolkit/bessel html/math_toolkit/dist_ref html/math_toolkit/dist_ref/dists html/math_toolkit/ellint html/math_toolkit/expint html/math_toolkit/factorials html/math_toolkit/fp_facets html/math_toolkit/hankel html/math_toolkit/high_precision html/math_toolkit/internals1 html/math_toolkit/internals2 html/math_toolkit/inv_hyper html/math_toolkit/jacobi html/math_toolkit/next_float html/math_toolkit/pol_ref html/math_toolkit/pol_tutorial html/math_toolkit/powers html/math_toolkit/rounding html/math_toolkit/sf_beta html/math_toolkit/sf_erf html/math_toolkit/sf_gamma html/math_toolkit/sf_poly html/math_toolkit/sinc html/math_toolkit/stat_tut html/math_toolkit/stat_tut/overview html/math_toolkit/stat_tut/weg html/math_toolkit/stat_tut/weg/binom_eg html/math_toolkit/stat_tut/weg/cs_eg html/math_toolkit/stat_tut/weg/find_eg html/math_toolkit/stat_tut/weg/nccs_eg html/math_toolkit/stat_tut/weg/neg_binom_eg html/math_toolkit/stat_tut/weg/normal_example html/math_toolkit/stat_tut/weg/st_eg html/math_toolkit/tutorial html/math_toolkit/zetas
From: john_at_[hidden]
Date: 2013-05-09 07:53:18
Author: johnmaddock
Date: 2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
New Revision: 84202
URL: http://svn.boost.org/trac/boost/changeset/84202
Log:
Regenerate and commit docs.
Added:
   sandbox/math/libs/math/doc/html/
   sandbox/math/libs/math/doc/html/backgrounders.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/boostbook.css   (contents, props changed)
   sandbox/math/libs/math/doc/html/constants.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/extern_c.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/gcd_lcm.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/index.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/
   sandbox/math/libs/math/doc/html/indexes.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/s01.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/s02.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/s03.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/s04.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/indexes/s05.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/inverse_complex.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/
   sandbox/math/libs/math/doc/html/math_toolkit/acknowledgement.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/acknowledgements.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/acos.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/acosh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/airy/
   sandbox/math/libs/math/doc/html/math_toolkit/airy.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/airy/ai.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/airy/aip.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/airy/bi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/airy/bip.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/archetypes.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/asin.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/asinh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/atan.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/atanh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/
   sandbox/math/libs/math/doc/html/math_toolkit/bessel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel_over.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/mbessel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/bessel/sph_bessel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/building.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/c99.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/comp_compilers.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/comparisons.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/compile_time.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/compilers_overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/concepts.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/config_macros.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/constants.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/contact.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/conventions.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/create.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/credits.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/credits0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/demo.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/directories.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_concept.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dist_algorithms.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/bernoulli_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/beta_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/binomial_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/cauchy_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/chi_squared_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/exp_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/extreme_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/f_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/gamma_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/geometric_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/hypergeometric_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gamma_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gaussian_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/laplace_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/logistic_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/lognormal_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_beta_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_chi_squared_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_f_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_t_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/negative_binomial_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/normal_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/pareto.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/poisson_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/rayleigh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/skew_normal_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/students_t_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/triangular_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/uniform_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/weibull_dist.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/nmp.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/
   sandbox/math/libs/math/doc/html/math_toolkit/ellint.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_2.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_3.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_carlson.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_intro.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/error_handling.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/exp.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/expint/
   sandbox/math/libs/math/doc/html/math_toolkit/expint.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_i.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_n.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/
   sandbox/math/libs/math/doc/html/math_toolkit/factorials.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_binomial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_double_factorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_factorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_falling_factorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_rising_factorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/faq.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/examples.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/intro.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/portability.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/rationale.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/reference.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/fpclass.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/future.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/gcd_function_object.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/getting_best.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/hankel/
   sandbox/math/libs/math/doc/html/math_toolkit/hankel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/hankel/cyl_hankel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/hankel/sph_hankel.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/header.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/header0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/header1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/e_float.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/float128.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_mpfr.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_multiprecision.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_ntl.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/using_test.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/high_precision/why_high_precision.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/hints.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history1_0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history2.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/history3.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/implementation.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/implementation0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/
   sandbox/math/libs/math/doc/html/math_toolkit/internals1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/cf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/minima.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/rational.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots2.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/series_evaluation.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals1/tuples.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals2/
   sandbox/math/libs/math/doc/html/math_toolkit/internals2.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals2/error_test.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals2/minimax.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals2/polynomials.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals2/test_data.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/internals_overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/interp.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/intro.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/intro0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/introduction.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/acosh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/asinh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/atanh.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/inv_hyper_over.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/issues.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jac_over.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cd.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cn.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cs.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dn.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ds.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_elliptic.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nd.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ns.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sd.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sn.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/lanczos.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/lcm_function_object.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/mem_fun.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/mem_fun0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/mem_typedef.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/namespaces.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/navigation.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/new_const.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/
   sandbox/math/libs/math/doc/html/math_toolkit/next_float.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_advance.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_distance.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_next.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_prior.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/next_float/nextafter.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/non_mem.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/non_mem0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/oct_create.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/oct_specialization.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/oct_trans.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/oct_typedefs.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/oct_value_ops.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/octonion.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/overview0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/owens_t.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf_over.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf_over0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/perf_test_app.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_overview0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/assert_undefined.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/discrete_quant_ref.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/error_handling_policies.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/internal_promotion.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/iteration_pol.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/namespace_pol.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/pol_ref_ref.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/policy_defaults.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/precision_pol.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_dist_policies.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_sf_policies.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/changing_policy_defaults.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/namespace_policies.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_tut_defaults.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_usage.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/understand_dis_quant.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/user_def_err_pol.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/what_is_a_policy.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/
   sandbox/math/libs/math/doc/html/math_toolkit/powers.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/cbrt.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/cos_pi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/ct_pow.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/expm1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/hypot.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/log1p.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/powm1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/sin_pi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/powers/sqrt1pm1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/quat.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/rationale.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/refs.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/relative_error.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/remez.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/result_type.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/rounding/
   sandbox/math/libs/math/doc/html/math_toolkit/rounding.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/rounding/modf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/rounding/round.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/rounding/trunc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/run_time.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_derivative.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_function.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_function.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_inv_function.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/
   sandbox/math/libs/math/doc/html/math_toolkit/sf_erf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_function.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_inv.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/digamma.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_derivatives.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_ratios.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma_inv.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/lgamma.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/tgamma.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/hermite.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/laguerre.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/legendre.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/sph_harm.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sign_functions.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sinc/
   sandbox/math/libs/math/doc/html/math_toolkit/sinc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_pi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinhc_pi.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/spec.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/dist_params.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/complements.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/generic.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/headers.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/objects.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/parameters.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/summary.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/variates.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_conf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_size_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/c_sharp.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_test.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/dist_construct_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/error_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/f_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_location_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/geometric_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nag_library.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg/nccs_power_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_conf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example/normal_misc.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/paired_st.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_size.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/two_sample_students_t.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/synopsis.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/synopsis0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/synopsis1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tests.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tests0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/threads.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/todo.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/todo0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tr1.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tr1_0.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tr1_ref.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/trans.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tuning.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tutorial/
   sandbox/math/libs/math/doc/html/math_toolkit/tutorial.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tutorial/non_templ.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tutorial/templ.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/tutorial/user_def.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/value_op.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/zetas/
   sandbox/math/libs/math/doc/html/math_toolkit/zetas.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/math_toolkit/zetas/zeta.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/octonions.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/overview.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/perf.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/policy.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/pr01.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/quaternions.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/special.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/status.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/toolkit.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/using_udt.html   (contents, props changed)
   sandbox/math/libs/math/doc/html/utils.html   (contents, props changed)
Text files modified: 
   sandbox/math/libs/math/doc/math.qbk |     4 ++--                                    
   1 files changed, 2 insertions(+), 2 deletions(-)
Added: sandbox/math/libs/math/doc/html/backgrounders.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/backgrounders.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 15. Backgrounders</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/perf_test_app.html" title="The Performance Test Application">
+<link rel="next" href="math_toolkit/implementation0.html" title="Additional Implementation Notes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/perf_test_app.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/implementation0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="backgrounders"></a>Chapter 15. Backgrounders</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section"><a href="math_toolkit/implementation0.html">Additional Implementation
+    Notes</a></span></dt>
+<dt><span class="section">Relative Error</span></dt>
+<dt><span class="section">The Lanczos Approximation</span></dt>
+<dt><span class="section">The Remez Method</span></dt>
+<dt><span class="section">References</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/perf_test_app.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/implementation0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/boostbook.css	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,646 @@
+/*=============================================================================
+    Copyright (c) 2004 Joel de Guzman
+    http://spirit.sourceforge.net/
+
+    Distributed under the Boost Software License, Version 1.0. (See accompany-
+    ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+/*=============================================================================
+    Body defaults
+=============================================================================*/
+
+    body
+    {
+        margin: 1em;
+        font-family: sans-serif;
+    }
+
+/*=============================================================================
+    Paragraphs
+=============================================================================*/
+
+    p
+    {
+        text-align: left;
+        font-size: 10pt;
+        line-height: 1.15;
+    }
+
+/*=============================================================================
+    Program listings
+=============================================================================*/
+
+    /* Code on paragraphs */
+    p tt.computeroutput
+    {
+        font-size: 9pt;
+    }
+
+    pre.synopsis
+    {
+        font-size: 9pt;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+
+    .programlisting,
+    .screen
+    {
+        font-size: 9pt;
+        display: block;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+
+    /* Program listings in tables don't get borders */
+    td .programlisting,
+    td .screen
+    {
+        margin: 0pc 0pc 0pc 0pc;
+        padding:  0pc 0pc 0pc 0pc;
+    }
+
+/*=============================================================================
+    Headings
+=============================================================================*/
+
+    h1, h2, h3, h4, h5, h6
+    {
+        text-align: left;
+        margin: 1em 0em 0.5em 0em;
+        font-weight: bold;
+    }
+
+    h1 { font-size: 140%; }
+    h2 { font-weight: bold; font-size: 140%; }
+    h3 { font-weight: bold; font-size: 130%; }
+    h4 { font-weight: bold; font-size: 120%; }
+    h5 { font-weight: normal; font-style: italic; font-size: 110%; }
+    h6 { font-weight: normal; font-style: italic; font-size: 100%; }
+
+    /* Top page titles */
+    title,
+    h1.title,
+    h2.title
+    h3.title,
+    h4.title,
+    h5.title,
+    h6.title,
+    .refentrytitle
+    {
+        font-weight: bold;
+        margin-bottom: 1pc;
+    }
+
+    h1.title { font-size: 140% }
+    h2.title { font-size: 140% }
+    h3.title { font-size: 130% }
+    h4.title { font-size: 120% }
+    h5.title { font-size: 110% }
+    h6.title { font-size: 100% }
+
+    .section h1
+    {
+        margin: 0em 0em 0.5em 0em;
+        font-size: 140%;
+    }
+
+    .section h2 { font-size: 140% }
+    .section h3 { font-size: 130% }
+    .section h4 { font-size: 120% }
+    .section h5 { font-size: 110% }
+    .section h6 { font-size: 100% }
+
+    /* Code on titles */
+    h1 tt.computeroutput { font-size: 140% }
+    h2 tt.computeroutput { font-size: 140% }
+    h3 tt.computeroutput { font-size: 130% }
+    h4 tt.computeroutput { font-size: 130% }	
+    h5 tt.computeroutput { font-size: 130% }
+    h6 tt.computeroutput { font-size: 130% }
+
+
+/*=============================================================================
+    Author
+=============================================================================*/
+
+    h3.author
+    {
+        font-size: 100%
+    }
+
+/*=============================================================================
+    Lists
+=============================================================================*/
+
+    li
+    {
+        font-size: 10pt;
+        line-height: 1.3;
+    }
+
+    /* Unordered lists */
+    ul
+    {
+        text-align: left;
+    }
+
+    /* Ordered lists */
+    ol
+    {
+        text-align: left;
+    }
+
+/*=============================================================================
+    Links
+=============================================================================*/
+
+    a
+    {
+        text-decoration: none; /* no underline */
+    }
+
+    a:hover
+    {
+        text-decoration: underline;
+    }
+
+/*=============================================================================
+    Spirit style navigation
+=============================================================================*/
+
+    .spirit-nav
+    {
+        text-align: right;
+    }
+
+    .spirit-nav a
+    {
+        color: white;
+        padding-left: 0.5em;
+    }
+
+    .spirit-nav img
+    {
+        border-width: 0px;
+    }
+
+/*=============================================================================
+    Copyright footer
+=============================================================================*/
+    .copyright-footer
+    {
+        text-align: right;
+        font-size: 70%;
+    }
+
+    .copyright-footer p
+    {
+        text-align: right;
+        font-size: 80%;
+    }
+
+/*=============================================================================
+    Table of contents
+=============================================================================*/
+
+    div.toc
+    {
+       margin: 1pc 4% 0pc 4%;
+       padding: 0.1pc 1pc 0.1pc 1pc;
+       font-size: 80%;
+       line-height: 1.15;
+    }
+
+    .boost-toc
+    {
+       float: right;
+       padding: 0.5pc;
+    }
+	
+    /* Code on toc */
+    .toc .computeroutput { font-size: 120% }
+
+    /* No margin on nested menus */
+
+    .toc dl dl { margin: 0; }
+
+/*=============================================================================
+    Tables
+=============================================================================*/
+
+    .table-title,
+    div.table p.title
+    {
+        margin-left: 4%;
+        padding-right: 0.5em;
+        padding-left: 0.5em;
+    }
+
+    .informaltable table,
+    .table table
+    {
+        width: 92%;
+        margin-left: 4%;
+        margin-right: 4%;
+    }
+
+    div.informaltable table,
+    div.table table
+    {
+        padding: 4px;
+    }
+
+    /* Table Cells */
+    div.informaltable table tr td,
+    div.table table tr td
+    {
+        padding: 0.5em;
+        text-align: left;
+        font-size: 9pt;
+    }
+
+    div.informaltable table tr th,
+    div.table table tr th
+    {
+        padding: 0.5em 0.5em 0.5em 0.5em;
+        border: 1pt solid white;
+        font-size: 80%;
+    }
+
+    table.simplelist
+    {
+        width: auto !important;
+        margin: 0em !important;
+        padding: 0em !important;
+        border: none !important;
+    }
+    table.simplelist td
+    {
+        margin: 0em !important;
+        padding: 0em !important;
+        text-align: left !important;
+        font-size: 9pt !important;
+        border: none !important;
+    }
+
+/*=============================================================================
+    Blurbs
+=============================================================================*/
+
+    div.note,
+    div.tip,
+    div.important,
+    div.caution,
+    div.warning,
+    p.blurb
+    {
+        font-size: 9pt; /* A little bit smaller than the main text */
+        line-height: 1.2;
+        display: block;
+        margin: 1pc 4% 0pc 4%;
+        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+    }
+
+    p.blurb img
+    {
+        padding: 1pt;
+    }
+
+/*=============================================================================
+    Variable Lists
+=============================================================================*/
+
+    div.variablelist
+    {
+        margin: 1em 0;
+    }
+
+    /* Make the terms in definition lists bold */
+    div.variablelist dl dt,
+    span.term
+    {
+        font-weight: bold;
+        font-size: 10pt;
+    }
+
+    div.variablelist table tbody tr td
+    {
+        text-align: left;
+        vertical-align: top;
+        padding: 0em 2em 0em 0em;
+        font-size: 10pt;
+        margin: 0em 0em 0.5em 0em;
+        line-height: 1;
+    }
+
+    div.variablelist dl dt
+    {
+        margin-bottom: 0.2em;
+    }
+
+    div.variablelist dl dd
+    {
+        margin: 0em 0em 0.5em 2em;
+        font-size: 10pt;
+    }
+
+    div.variablelist table tbody tr td p,
+    div.variablelist dl dd p
+    {
+        margin: 0em 0em 0.5em 0em;
+        line-height: 1;
+    }
+
+/*=============================================================================
+    Misc
+=============================================================================*/
+
+    /* Title of books and articles in bibliographies */
+    span.title
+    {
+        font-style: italic;
+    }
+
+    span.underline
+    {
+        text-decoration: underline;
+    }
+
+    span.strikethrough
+    {
+        text-decoration: line-through;
+    }
+
+    /* Copyright, Legal Notice */
+    div div.legalnotice p
+    {
+        text-align: left
+    }
+
+/*=============================================================================
+    Colors
+=============================================================================*/
+
+    @media screen
+    {
+        body {
+            background-color: #FFFFFF;
+            color: #000000;
+        }
+
+    /* Syntax Highlighting */
+        .keyword        { color: #0000AA; }
+        .identifier     { color: #000000; }
+        .special        { color: #707070; }
+        .preprocessor   { color: #402080; }
+        .char           { color: teal; }
+        .comment        { color: #800000; }
+        .string         { color: teal; }
+        .number         { color: teal; }
+        .white_bkd      { background-color: #FFFFFF; }
+        .dk_grey_bkd    { background-color: #999999; }
+
+    /* Links */
+        a, a .keyword, a .identifier, a .special, a .preprocessor
+        a .char, a .comment, a .string, a .number
+        {
+            color: #005a9c;
+        }
+
+        a:visited, a:visited .keyword, a:visited .identifier,
+        a:visited .special, a:visited .preprocessor a:visited .char,
+        a:visited .comment, a:visited .string, a:visited .number
+        {
+            color: #9c5a9c;
+        }
+
+        h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+        h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+        h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+        {
+            text-decoration: none; /* no underline */
+            color: #000000;
+        }
+
+    /* Copyright, Legal Notice */
+        .copyright
+        {
+            color: #666666;
+            font-size: small;
+        }
+
+        div div.legalnotice p
+        {
+            color: #666666;
+        }
+
+    /* Program listing */
+        pre.synopsis
+        {
+            border: 1px solid #DCDCDC;
+        }
+
+        .programlisting,
+        .screen
+        {
+            border: 1px solid #DCDCDC;
+        }
+
+        td .programlisting,
+        td .screen
+        {
+            border: 0px solid #DCDCDC;
+        }
+
+    /* Blurbs */
+        div.note,
+        div.tip,
+        div.important,
+        div.caution,
+        div.warning,
+        p.blurb
+        {
+            border: 1px solid #DCDCDC;
+        }
+
+    /* Table of contents */
+        div.toc
+        {
+            border: 1px solid #DCDCDC;
+        }
+
+    /* Tables */
+        div.informaltable table tr td,
+        div.table table tr td
+        {
+            border: 1px solid #DCDCDC;
+        }
+
+        div.informaltable table tr th,
+        div.table table tr th
+        {
+            background-color: #F0F0F0;
+            border: 1px solid #DCDCDC;
+        }
+
+        .copyright-footer
+        {
+            color: #8F8F8F;
+        }
+
+    /* Misc */
+        span.highlight
+        {
+            color: #00A000;
+        }
+    }
+
+    @media print
+    {
+    /* Links */
+        a
+        {
+            color: black;
+        }
+
+        a:visited
+        {
+            color: black;
+        }
+
+        .spirit-nav
+        {
+            display: none;
+        }
+
+    /* Program listing */
+        pre.synopsis
+        {
+            border: 1px solid gray;
+        }
+
+        .programlisting,
+        .screen
+        {
+            border: 1px solid gray;
+        }
+
+        td .programlisting,
+        td .screen
+        {
+            border: 0px solid #DCDCDC;
+        }
+
+    /* Table of contents */
+        div.toc
+        {
+            border: 1px solid gray;
+        }
+
+        .informaltable table,
+        .table table
+        {
+            border: 1px solid gray;
+            border-collapse: collapse;
+        }
+
+    /* Tables */
+        div.informaltable table tr td,
+        div.table table tr td
+        {
+            border: 1px solid gray;
+        }
+
+        div.informaltable table tr th,
+        div.table table tr th
+        {
+            border: 1px solid gray;
+        }
+
+        table.simplelist tr td
+        {
+            border: none !important;
+        }
+
+    /* Misc */
+        span.highlight
+        {
+            font-weight: bold;
+        }
+    }
+
+/*=============================================================================
+    Images
+=============================================================================*/
+
+    span.inlinemediaobject img
+    {
+        vertical-align: middle;
+    }
+
+/*==============================================================================
+    Super and Subscript: style so that line spacing isn't effected, see
+    http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
+==============================================================================*/
+
+sup,
+sub {
+	height: 0;
+	line-height: 1;
+	vertical-align: baseline;
+	position: relative;
+	
+}
+
+/* For internet explorer: */
+
+* html sup,
+* html sub {
+	vertical-align: bottom;
+}
+
+sup {
+	bottom: 1ex;
+}
+
+sub {
+	top: .5ex;
+}
+
+/*==============================================================================
+    Indexes: pretty much the same as the TOC.
+==============================================================================*/
+
+    .index
+    {
+       font-size: 80%;
+       padding-top: 0px;
+       padding-bottom: 0px;
+       margin-top: 0px;
+       margin-bottom: 0px;
+       margin-left: 0px;
+    }
+
+    .index ul
+    {
+       padding-left: 3em;
+    }
+
+    .index p
+    {
+       padding: 2px;
+       margin: 2px;
+    }
+
+    .index-entry-level-0
+    {
+        font-weight: bold;
+    }
+
+    .index em
+    {
+        font-weight: bold;
+    }
+
Added: sandbox/math/libs/math/doc/html/constants.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/constants.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 6. Mathematical Constants</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference">
+<link rel="next" href="math_toolkit/intro0.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/tr1_ref.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/intro0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="constants"></a>Chapter 6. Mathematical Constants</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Tutorial</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/tutorial/non_templ.html">Use in non-template
+      code</a></span></dt>
+<dt><span class="section">Use in template code</span></dt>
+<dt><span class="section"><a href="math_toolkit/tutorial/user_def.html">Use With User-Defined
+      Types</a></span></dt>
+</dl></dd>
+<dt><span class="section">The Mathematical Constants</span></dt>
+<dt><span class="section">Defining New Constants</span></dt>
+<dt><span class="section">FAQs</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/tr1_ref.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/intro0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 2. Statistical Distributions and Functions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/contact.html" title="Contact Info and Support">
+<link rel="next" href="math_toolkit/stat_tut.html" title="Statistical Distributions Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/contact.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/stat_tut.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="dist"></a>Chapter 2. Statistical Distributions and Functions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Statistical Distributions Tutorial</span></dt>
+<dd><dl>
+<dt><span class="section">Overview of Distributions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/overview/headers.html">Headers and
+        Namespaces</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/overview/objects.html">Distributions
+        are Objects</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/overview/generic.html">Generic operations
+        common to all distributions are non-member functions</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/overview/complements.html">Complements
+        are supported too - and when to use them</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/overview/parameters.html">Parameters
+        can be calculated</a></span></dt>
+<dt><span class="section">Summary</span></dt>
+</dl></dd>
+<dt><span class="section">Worked Examples</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/dist_construct_eg.html">Distribution
+        Construction Examples</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg.html">Student's t Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html">Calculating
+          confidence intervals on the mean with the Students-t distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html">Testing
+          a sample mean for difference from a "true" mean</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg/tut_mean_size.html">Estimating
+          how large a sample size would have to become in order to give a significant
+          Students-t test result with a single sample test</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg/two_sample_students_t.html">Comparing
+          the means of two samples with the Students-t test</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/st_eg/paired_st.html">Comparing
+          two paired samples with the Student's t distribution</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/cs_eg.html">Chi Squared Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html">Confidence
+          Intervals on the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/cs_eg/chi_sq_test.html">Chi-Square
+          Test for the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html">Estimating
+          the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a></span></dt>
+</dl></dd>
+<dt><span class="section">F Distribution Examples</span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/binom_eg.html">Binomial Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html">Binomial
+          Coin-Flipping Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html">Binomial
+          Quiz Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/binom_eg/binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/binom_eg/binom_size_eg.html">Estimating
+          Sample Sizes for a Binomial Distribution.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/geometric_eg.html">Geometric Distribution
+        Examples</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/neg_binom_eg.html">Negative Binomial
+        Distribution Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for the Negative Binomial
+          Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html">Estimating
+          Sample Sizes for the Negative Binomial.</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html">Negative
+          Binomial Sales Quota Example.</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html">Negative
+          Binomial Table Printing Example.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/normal_example.html">Normal Distribution
+        Examples</a></span></dt>
+<dd><dl><dt><span class="section"><a href="math_toolkit/stat_tut/weg/normal_example/normal_misc.html">Some
+          Miscellaneous Examples of the Normal (Gaussian) Distribution</a></span></dt></dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html">Inverse
+        Chi-Squared Distribution Bayes Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/nccs_eg.html">Non Central Chi
+        Squared Example</a></span></dt>
+<dd><dl><dt><span class="section"><a href="math_toolkit/stat_tut/weg/nccs_eg/nccs_power_eg.html">Tables
+          of the power function of the chi<sup>2</sup> test.</a></span></dt></dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/error_eg.html">Error Handling
+        Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/find_eg.html">Find Location and
+        Scale Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/find_eg/find_location_eg.html">Find
+          Location (Mean) Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html">Find
+          Scale (Standard Deviation) Example</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html">Find
+          mean and standard deviation example</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/nag_library.html">Comparison with
+        C, R, FORTRAN-style Free Functions</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/weg/c_sharp.html">Using the Distributions
+        from Within C#</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/stat_tut/variates.html">Random Variates and Distribution
+      Parameters</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/stat_tut/dist_params.html">Discrete Probability
+      Distributions</a></span></dt>
+</dl></dd>
+<dt><span class="section">Statistical Distributions Reference</span></dt>
+<dd><dl>
+<dt><span class="section">Non-Member Properties</span></dt>
+<dt><span class="section">Distributions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/bernoulli_dist.html">Bernoulli
+        Distribution</a></span></dt>
+<dt><span class="section">Beta Distribution</span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/binomial_dist.html">Binomial
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/cauchy_dist.html">Cauchy-Lorentz
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/chi_squared_dist.html">Chi Squared
+        Distribution</a></span></dt>
+<dt><span class="section">Exponential Distribution</span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/extreme_dist.html">Extreme Value
+        Distribution</a></span></dt>
+<dt><span class="section">F Distribution</span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/gamma_dist.html">Gamma (and
+        Erlang) Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/geometric_dist.html">Geometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/hypergeometric_dist.html">Hypergeometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html">Inverse
+        Chi Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/inverse_gamma_dist.html">Inverse
+        Gamma Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/inverse_gaussian_dist.html">Inverse
+        Gaussian (or Inverse Normal) Distribution</a></span></dt>
+<dt><span class="section">Laplace Distribution</span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/logistic_dist.html">Logistic
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/lognormal_dist.html">Log Normal
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/negative_binomial_dist.html">Negative
+        Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/nc_beta_dist.html">Noncentral
+        Beta Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/nc_chi_squared_dist.html">Noncentral
+        Chi-Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/nc_f_dist.html">Noncentral F
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/nc_t_dist.html">Noncentral T
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/normal_dist.html">Normal (Gaussian)
+        Distribution</a></span></dt>
+<dt><span class="section">Pareto Distribution</span></dt>
+<dt><span class="section">Poisson Distribution</span></dt>
+<dt><span class="section">Rayleigh Distribution</span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/skew_normal_dist.html">Skew
+        Normal Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/students_t_dist.html">Students
+        t Distribution</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_ref/dists/triangular_dist.html">Triangular
+        Distribution</a></span></dt>
+<dt><span class="section">Uniform Distribution</span></dt>
+<dt><span class="section">Weibull Distribution</span></dt>
+</dl></dd>
+<dt><span class="section">Distribution Algorithms</span></dt>
+</dl></dd>
+<dt><span class="section">Extras/Future Directions</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/contact.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/stat_tut.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/extern_c.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/extern_c.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 5. TR1 and C99 external "C" Functions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance">
+<link rel="next" href="math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/next_float/float_advance.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/tr1_0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="extern_c"></a>Chapter 5. TR1 and C99 external "C" Functions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">C99 and TR1 C Functions Overview</span></dt>
+<dt><span class="section">C99 C Functions</span></dt>
+<dt><span class="section">TR1 C Functions Quick Reference</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/next_float/float_advance.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/tr1_0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/gcd_lcm.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/gcd_lcm.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/todo0.html" title="To Do">
+<link rel="next" href="math_toolkit/introduction.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/todo0.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/introduction.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="gcd_lcm"></a>Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">GCD Function Object</span></dt>
+<dt><span class="section">LCM Function Object</span></dt>
+<dt><span class="section">Run-time GCD & LCM Determination</span></dt>
+<dt><span class="section">Compile time GCD and LCM determination</span></dt>
+<dt><span class="section">Header <boost/math/common_factor.hpp></span></dt>
+<dt><span class="section">Demonstration Program</span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">History</span></dt>
+<dt><span class="section">Credits</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/todo0.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/introduction.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/index.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,98 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Math Toolkit</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="next" href="overview.html" title="Chapter 1. Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav"><a accesskey="n" href="overview.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="book">
+<div class="titlepage">
+<div>
+<div><h1 class="title">
+<a name="math_toolkit"></a>Math Toolkit</h1></div>
+<div><div class="authorgroup">
+<div class="author"><h3 class="author">
+<span class="firstname">Paul A.</span> <span class="surname">Bristow</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Hubert</span> <span class="surname">Holin</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Christopher</span> <span class="surname">Kormanyos</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Bruno</span> <span class="surname">Lalande</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">John</span> <span class="surname">Maddock</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Johan</span> <span class="surname">Råde</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Benjamin</span> <span class="surname">Sobotta</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Gautam</span> <span class="surname">Sewani</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Thijs</span> <span class="surname">van den Berg</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Daryle</span> <span class="surname">Walker</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Xiaogang</span> <span class="surname">Zhang</span>
+</h3></div>
+</div></div>
+<div><p class="releaseinfo">
+This manual is also available in <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">printer
+  friendly PDF format</a>, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0,
+  Classification 519.2-dc22. </p></div>
+<div><p class="copyright">Copyright © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos</p></div>
+<div><div class="legalnotice">
+<a name="math_toolkit.legal"></a><p>
+        Distributed under 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)
+      </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="chapter">1. Overview</span></dt>
+<dt><span class="chapter">2. Statistical Distributions and Functions</span></dt>
+<dt><span class="chapter">3. Special Functions</span></dt>
+<dt><span class="chapter">4. Floating Point Utilities</span></dt>
+<dt><span class="chapter">5. TR1 and C99 external "C" Functions</span></dt>
+<dt><span class="chapter">6. Mathematical Constants</span></dt>
+<dt><span class="chapter">7. Complex Number Functions</span></dt>
+<dt><span class="chapter">8. Quaternions</span></dt>
+<dt><span class="chapter">9. Octonions</span></dt>
+<dt><span class="chapter">10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)</span></dt>
+<dt><span class="chapter">11. Internals and Internal Details</span></dt>
+<dt><span class="chapter">12. Use with User-Defined Floating-Point Types</span></dt>
+<dt><span class="chapter">13. Policies</span></dt>
+<dt><span class="chapter">14. Performance</span></dt>
+<dt><span class="chapter">15. Backgrounders</span></dt>
+<dt><span class="chapter">16. Library Status</span></dt>
+<dt><span class="chapter">17. Indexes</span></dt>
+</dl>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: May 09, 2013 at 10:19:53 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="overview.html"><img src="images/next.png" alt="Next"></a></div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 17. Indexes</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/credits.html" title="Credits and Acknowledgements">
+<link rel="next" href="indexes/s01.html" title="Function Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="indexes/s01.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="indexes"></a>Chapter 17. Indexes</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Function Index</span></dt>
+<dt><span class="section">Class Index</span></dt>
+<dt><span class="section">Typedef Index</span></dt>
+<dt><span class="section">Macro Index</span></dt>
+<dt><span class="section">Index</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/credits.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="indexes/s01.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes/s01.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes/s01.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,2481 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Function Index</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="prev" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="next" href="s02.html" title="Class Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../indexes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s02.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  id1432348">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1432348"></a>Function Index</h2></div></div></div>
+<p><a class="link" href="s01.html#idx_id_0">A</a> <a class="link" href="s01.html#idx_id_1">B</a> <a class="link" href="s01.html#idx_id_2">C</a> <a class="link" href="s01.html#idx_id_3">D</a> <a class="link" href="s01.html#idx_id_4">E</a> <a class="link" href="s01.html#idx_id_5">F</a> <a class="link" href="s01.html#idx_id_6">G</a> <a class="link" href="s01.html#idx_id_7">H</a> <a class="link" href="s01.html#idx_id_8">I</a> <a class="link" href="s01.html#idx_id_9">J</a> <a class="link" href="s01.html#idx_id_10">K</a> <a class="link" href="s01.html#idx_id_11">L</a> <a class="link" href="s01.html#idx_id_12">M</a> <a class="link" href="s01.html#idx_id_13">N</a> <a class="link" href="s01.html#idx_id_14">O</a> <a class="link" href="s01.html#idx_id_15">P</a> <a class="link" href="s01.html#idx_id_16">Q</a> <a class="link" href="s01.html#idx_id_17">R</a> <a class="link" href="s01.html#idx_id_18">S</a> <a class="link" href="s01.html#idx_id_19">T</a> <a class="link" href="s01.html#idx_id_20">U</a> <a class="link" href=
"s01.html#idx_id_21">V</a> <a class="link" href="s01.html#idx_id_22">W</a> <a class="link" href="s01.html#idx_id_23">Z</a></p>
+<div class="variablelist"><dl class="variablelist">
+<dt>
+<a name="idx_id_0"></a><span class="term">A</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acosh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/acosh.html" title="acosh"><span class="index-entry-level-1">acosh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acoshf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acoshl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_ai</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/ai.html" title="Airy Ai Function"><span class="index-entry-level-1">Airy Ai Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_ai_prime</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/aip.html" title="Airy Ai' Function"><span class="index-entry-level-1">Airy Ai' Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_bi</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bi.html" title="Airy Bi Function"><span class="index-entry-level-1">Airy Bi Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_bi_prime</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bip.html" title="Airy Bi' Function"><span class="index-entry-level-1">Airy Bi' Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/asinh.html" title="asinh"><span class="index-entry-level-1">asinh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinhf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinhl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/atanh.html" title="atanh"><span class="index-entry-level-1">atanh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanhf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanhl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_1"></a><span class="term">B</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/sf_beta/beta_function.html" title="Beta"><span class="index-entry-level-1">Beta</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">Binomial Coefficients</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_beta_a_b_" title="Table 3.10. Errors In the Function beta(a, b, x)"><span class="index-entry-level-1">Errors In the Function beta(a, b, x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betac</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_betac_a_b" title="Table 3.11. Errors In the Function betac(a,b,x)"><span class="index-entry-level-1">Errors In the Function betac(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">binomial_coefficient</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">Binomial Coefficients</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">brent_find_minima</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">Locating Function Minima: Brent's algorithm</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_2"></a><span class="term">C</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">c</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrt</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/cbrt.html" title="cbrt"><span class="index-entry-level-1">cbrt</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrtf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrtl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cdf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html" title="Binomial Coin-Flipping Example"><span class="index-entry-level-1">Binomial Coin-Flipping Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies"><span class="index-entry-level-1">Discrete Quantile Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/future.html" title="Extras/Future Directions"><span class="index-entry-level-1">Extras/Future Directions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">changesign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">checked_narrowing_cast</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/error_handling.html" title="Error Handling"><span class="index-entry-level-1">Error Handling</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">chf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hyperg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hypergf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hypergl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conj</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">continued_fraction_a</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">Continued Fraction Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">continued_fraction_b</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">Continued Fraction Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysignf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysignl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/cos_pi.html" title="cos_pi"><span class="index-entry-level-0">cos_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cylindrical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cylindrospherical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_i</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_if</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_il</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_jf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_jl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_k</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_kf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_kl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumannf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumannl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_3"></a><span class="term">D</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-0">digamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_double_factorial.html" title="Double Factorial"><span class="index-entry-level-0">double_factorial</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_4"></a><span class="term">E</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the First Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the Second Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the Third Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rj</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">epsilon</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">Locating Function Minima: Brent's algorithm</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">Error Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erf_z" title="Table 3.12. Errors In the Function erf(z)"><span class="index-entry-level-1">Errors In the Function erf(z)</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">Error Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erfc_z" title="Table 3.13. Errors In the Function erfc(z)"><span class="index-entry-level-1">Errors In the Function erfc(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfcf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfcl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfc_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erff</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erf_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_even_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_odd_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_rational</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html#math_toolkit.expint.expint_n.errors_in_the_function_expint_n_" title="Table 3.31. Errors In the Function expint(n, z)"><span class="index-entry-level-1">Errors In the Function expint(n, z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html#math_toolkit.expint.expint_i.errors_in_the_function_expint_z" title="Table 3.32. Errors In the Function expint(z)"><span class="index-entry-level-1">Errors In the Function expint(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html" title="Exponential Integral En"><span class="index-entry-level-1">Exponential Integral En</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/expm1.html" title="expm1"><span class="index-entry-level-1">expm1</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">e_float</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">Using e_float Library</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_5"></a><span class="term">F</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-0">factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_falling_factorial.html" title="Falling Factorial"><span class="index-entry-level-0">falling_factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdim</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdimf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdiml</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_degrees_of_freedom</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_location</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">Distribution Algorithms</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_lower_bound_on_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_non_centrality</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_scale</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">Distribution Algorithms</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_upper_bound_on_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_advance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_distance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_next.html" title="Finding the Next Greater Representable Value (float_next)"><span class="index-entry-level-1">Finding the Next Greater Representable Value (float_next)</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_prior</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)"><span class="index-entry-level-1">Finding the Next Smaller Representable Value (float_prior)</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmax</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaxf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaxl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmin</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fminf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fminl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fpclassify</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_6"></a><span class="term">G</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_p_a" title="Table 3.3. Errors In the Function gamma_p(a,z)"><span class="index-entry-level-1">Errors In the Function gamma_p(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_derivative</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function"><span class="index-entry-level-1">Derivative of the Incomplete Gamma Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_q_a" title="Table 3.4. Errors In the Function gamma_q(a,z)"><span class="index-entry-level-1">Errors In the Function gamma_q(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gcd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get_from_string</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get_user_parameter_info</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_7"></a><span class="term">H</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">halley_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hazard</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermite</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">Hermite Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermitef</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermitel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermite_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">Hermite Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hyperg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypot</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/hypot.html" title="hypot"><span class="index-entry-level-1">hypot</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypotf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypotl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_8"></a><span class="term">I</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b" title="Table 3.8. Errors In the Function ibeta(a,b,x)"><span class="index-entry-level-1">Errors In the Function ibeta(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_" title="Table 3.9. Errors In the Function ibetac(a,b,x)"><span class="index-entry-level-1">Errors In the Function ibetac(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_invb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_derivative</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function"><span class="index-entry-level-1">Derivative of the Incomplete Beta Function</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_invb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogbf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogbl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">infinity</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">insert</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">iround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isfinite</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isinf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isnan</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isnormal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">itrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_9"></a><span class="term">J</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cd.html" title="Jacobi Elliptic Function cd"><span class="index-entry-level-1">Jacobi Elliptic Function cd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cn.html" title="Jacobi Elliptic Function cn"><span class="index-entry-level-1">Jacobi Elliptic Function cn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cs.html" title="Jacobi Elliptic Function cs"><span class="index-entry-level-1">Jacobi Elliptic Function cs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_dc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dc.html" title="Jacobi Elliptic Function dc"><span class="index-entry-level-1">Jacobi Elliptic Function dc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_dn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dn.html" title="Jacobi Elliptic Function dn"><span class="index-entry-level-1">Jacobi Elliptic Function dn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_ds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ds.html" title="Jacobi Elliptic Function ds"><span class="index-entry-level-1">Jacobi Elliptic Function ds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_elliptic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN"><span class="index-entry-level-1">Jacobi Elliptic SN, CN and DN</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_nc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nc.html" title="Jacobi Elliptic Function nc"><span class="index-entry-level-1">Jacobi Elliptic Function nc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_nd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nd.html" title="Jacobi Elliptic Function nd"><span class="index-entry-level-1">Jacobi Elliptic Function nd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_ns</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ns.html" title="Jacobi Elliptic Function ns"><span class="index-entry-level-1">Jacobi Elliptic Function ns</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sc.html" title="Jacobi Elliptic Function sc"><span class="index-entry-level-1">Jacobi Elliptic Function sc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sd.html" title="Jacobi Elliptic Function sd"><span class="index-entry-level-1">Jacobi Elliptic Function sd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sn.html" title="Jacobi Elliptic Function sn"><span class="index-entry-level-1">Jacobi Elliptic Function sn</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_10"></a><span class="term">K</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kahan_sum_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kurtosis</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kurtosis_excess</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_11"></a><span class="term">L</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">l1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">Laguerre (and Associated) Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerre_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">Laguerre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lcm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ldexp</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_q</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgammaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgammal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llroundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llroundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lltrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">location</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/log1p.html" title="log1p"><span class="index-entry-level-1">log1p</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1pf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1pl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logbf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logbl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lroundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lroundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ltrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_12"></a><span class="term">M</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_periodic_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_policy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_power_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_random_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mean</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">median</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mode</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">msg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">multipolar</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_13"></a><span class="term">N</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nan</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/intro.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nanf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nanl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">newton_raphson_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafter</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)"><span class="index-entry-level-1">Finding the Next Representable Value in a Specific Direction (nextafter)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafterf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafterl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttoward</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttowardf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttowardl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">norm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_14"></a><span class="term">O</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">octonion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">Octonion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">owens_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/owens_t.html" title="Owen's T function"><span class="index-entry-level-1">Owen's T function</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_15"></a><span class="term">P</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pdf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/powm1.html" title="powm1"><span class="index-entry-level-0">powm1</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_16"></a><span class="term">Q</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">quantile</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_concept.html" title="Conceptual Requirements for Distribution Types"><span class="index-entry-level-1">Conceptual Requirements for Distribution Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">Some Miscellaneous Examples of the Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">quaternion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">Quaternion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_17"></a><span class="term">R</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">r</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">range</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html" title="Compilers"><span class="index-entry-level-1">Compilers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">relative_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">Relative Error and Testing</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainder</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainderf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainderl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquo</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquof</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquol</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zetaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zetal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_rising_factorial.html" title="Rising Factorial"><span class="index-entry-level-0">rising_factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">round</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">roundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">roundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_18"></a><span class="term">S</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbln</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalblnf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalblnl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbnf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbnl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scale</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">Find mean and standard deviation example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">Inverse Chi-Squared Distribution Bayes Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">schroeder_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">semipolar</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">shape</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">signbit</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sinc/sinc_pi.html" title="sinc_pi"><span class="index-entry-level-0">sinc_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sinc/sinhc_pi.html" title="sinhc_pi"><span class="index-entry-level-0">sinhc_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/sin_pi.html" title="sin_pi"><span class="index-entry-level-0">sin_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">skewness</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis0.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic_i</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic_r</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_bessel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_besself</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_bessell</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumann</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumannf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumannl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/sqrt1pm1.html" title="sqrt1pm1"><span class="index-entry-level-0">sqrt1pm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">standard_deviation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sum_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sup</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_19"></a><span class="term">T</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution"><span class="index-entry-level-1">Calculating confidence intervals on the mean with the Students-t distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">test</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">Relative Error and Testing</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">Some Miscellaneous Examples of the Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions"><span class="index-entry-level-1">Changing the Policy on an Ad Hoc Basis for the Special Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_a_" title="Table 3.6. Errors In the Function tgamma(a,z)"><span class="index-entry-level-1">Errors In the Function tgamma(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma1pm1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Gamma</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgammaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgammal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_delta_ratio</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_de" title="Table 3.1. Errors In the Function tgamma_delta_ratio(a, delta)"><span class="index-entry-level-1">Errors In the Function tgamma_delta_ratio(a, delta)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">Ratios of Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_lower</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_lo" title="Table 3.5. Errors In the Function tgamma_lower(a,z)"><span class="index-entry-level-1">Errors In the Function tgamma_lower(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_ratio</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ra" title="Table 3.2. Errors In the Function tgamma_ratio(a, b)"><span class="index-entry-level-1">Errors In the Function tgamma_ratio(a, b)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">Ratios of Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tol</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">trunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">truncf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">truncl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_20"></a><span class="term">U</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">unreal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">Octonion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">Quaternion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_denorm_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_domain_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_evaluation_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_indeterminate_result_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_overflow_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_pole_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_rounding_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_underflow_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_21"></a><span class="term">V</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">variance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation"><span class="index-entry-level-1">Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">Inverse Chi-Squared Distribution Bayes Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_22"></a><span class="term">W</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">write_code</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">write_csv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_23"></a><span class="term">Z</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">zeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html#math_toolkit.zetas.zeta.errors_in_the_function_zeta_z" title="Table 3.30. Errors In the Function zeta(z)"><span class="index-entry-level-1">Errors In the Function zeta(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html" title="Riemann Zeta Function"><span class="index-entry-level-1">Riemann Zeta Function</span></a></p></li>
+</ul></div>
+</li></ul></div></dd>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../indexes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s02.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes/s02.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes/s02.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,267 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Class Index</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="prev" href="s01.html" title="Function Index">
+<link rel="next" href="s03.html" title="Typedef Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s01.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s03.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  id1452337">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1452337"></a>Class Index</h2></div></div></div>
+<p><a class="link" href="s02.html#idx_id_25">B</a> <a class="link" href="s02.html#idx_id_26">C</a> <a class="link" href="s02.html#idx_id_27">D</a> <a class="link" href="s02.html#idx_id_28">E</a> <a class="link" href="s02.html#idx_id_29">F</a> <a class="link" href="s02.html#idx_id_30">G</a> <a class="link" href="s02.html#idx_id_31">H</a> <a class="link" href="s02.html#idx_id_32">I</a> <a class="link" href="s02.html#idx_id_35">L</a> <a class="link" href="s02.html#idx_id_36">M</a> <a class="link" href="s02.html#idx_id_37">N</a> <a class="link" href="s02.html#idx_id_38">O</a> <a class="link" href="s02.html#idx_id_39">P</a> <a class="link" href="s02.html#idx_id_40">Q</a> <a class="link" href="s02.html#idx_id_41">R</a> <a class="link" href="s02.html#idx_id_42">S</a> <a class="link" href="s02.html#idx_id_43">T</a> <a class="link" href="s02.html#idx_id_44">U</a> <a class="link" href="s02.html#idx_id_46">W</a></p>
+<div class="variablelist"><dl class="variablelist">
+<dt>
+<a name="idx_id_25"></a><span class="term">B</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-0">bernoulli_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-0">beta_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-0">binomial_distribution</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_26"></a><span class="term">C</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cauchy_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-0">chi_squared_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">construction_traits</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_27"></a><span class="term">D</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">default_policy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_28"></a><span class="term">E</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">eps_tolerance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_ceil</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_floor</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_nearest_integer</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-0">exponential_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-0">extreme_value_distribution</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_29"></a><span class="term">F</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fisher_f_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_30"></a><span class="term">G</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gcd_evaluator</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">GCD Function Object</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-0">geometric_distribution</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_31"></a><span class="term">H</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-0">hypergeometric_distribution</span></a></p></li></ul></div></dd>
+<dt>
+<a name="idx_id_32"></a><span class="term">I</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-0">inverse_chi_squared_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-0">inverse_gamma_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_gaussian_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_35"></a><span class="term">L</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-0">laplace_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lcm_evaluator</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">LCM Function Object</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1p_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-0">logistic_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lognormal_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_36"></a><span class="term">M</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">max_factorial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_37"></a><span class="term">N</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-0">negative_binomial_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nonfinite_num_get</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">Facets for Floating-Point Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nonfinite_num_put</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">Facets for Floating-Point Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_beta_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_chi_squared_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_f_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_t_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normalise</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normal_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_38"></a><span class="term">O</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">octonion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem0.html" title="Octonion Non-Member Operators"><span class="index-entry-level-1">Octonion Non-Member Operators</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+</ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_39"></a><span class="term">P</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-0">pareto_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-0">poisson_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_args</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_40"></a><span class="term">Q</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">quaternion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem.html" title="Quaternion Non-Member Operators"><span class="index-entry-level-1">Quaternion Non-Member Operators</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+</ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_41"></a><span class="term">R</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-0">rayleigh_distribution</span></a></p></li></ul></div></dd>
+<dt>
+<a name="idx_id_42"></a><span class="term">S</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-0">skew_normal_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-0">students_t_distribution</span></a></p></li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_43"></a><span class="term">T</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">test_data</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">triangular_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></strong></span></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_44"></a><span class="term">U</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-0">uniform_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">upper_incomplete_gamma_fract</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_46"></a><span class="term">W</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-0">weibull_distribution</span></a></p></li></ul></div></dd>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s01.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s03.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes/s03.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes/s03.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,412 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Typedef Index</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="prev" href="s02.html" title="Class Index">
+<link rel="next" href="s04.html" title="Macro Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s04.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  id1453417">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1453417"></a>Typedef Index</h2></div></div></div>
+<p><a class="link" href="s03.html#idx_id_48">A</a> <a class="link" href="s03.html#idx_id_49">B</a> <a class="link" href="s03.html#idx_id_50">C</a> <a class="link" href="s03.html#idx_id_51">D</a> <a class="link" href="s03.html#idx_id_52">E</a> <a class="link" href="s03.html#idx_id_53">F</a> <a class="link" href="s03.html#idx_id_54">G</a> <a class="link" href="s03.html#idx_id_55">H</a> <a class="link" href="s03.html#idx_id_56">I</a> <a class="link" href="s03.html#idx_id_59">L</a> <a class="link" href="s03.html#idx_id_61">N</a> <a class="link" href="s03.html#idx_id_62">O</a> <a class="link" href="s03.html#idx_id_63">P</a> <a class="link" href="s03.html#idx_id_65">R</a> <a class="link" href="s03.html#idx_id_66">S</a> <a class="link" href="s03.html#idx_id_67">T</a> <a class="link" href="s03.html#idx_id_68">U</a> <a class="link" href="s03.html#idx_id_69">V</a> <a class="link" href="s03.html#idx_id_70">W</a></p>
+<div class="variablelist"><dl class="variablelist">
+<dt>
+<a name="idx_id_48"></a><span class="term">A</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assert_undefined_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_49"></a><span class="term">B</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">bernoulli</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">binomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_50"></a><span class="term">C</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cauchy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">Find mean and standard deviation example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_51"></a><span class="term">D</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">denorm_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">discrete_quantile_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">domain_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">double_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_52"></a><span class="term">E</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluation_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exponential</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">extreme_value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_53"></a><span class="term">F</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fisher_f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis"><span class="index-entry-level-1">Setting Policies for Distributions on an Ad Hoc Basis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_54"></a><span class="term">G</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">geometric</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_55"></a><span class="term">H</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergeometric</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_56"></a><span class="term">I</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">indeterminate_result_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_gaussian</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_59"></a><span class="term">L</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laplace</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logistic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lognormal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_61"></a><span class="term">N</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">negative_binomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_62"></a><span class="term">O</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">overflow_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_63"></a><span class="term">P</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pareto</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">poisson</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pole_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">policy_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">precision_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_double_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_float_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_65"></a><span class="term">R</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rayleigh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rounding_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_66"></a><span class="term">S</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">second_argument_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">GCD Function Object</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">LCM Function Object</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">students_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/namespaces.html" title="Namespaces"><span class="index-entry-level-1">Namespaces</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_67"></a><span class="term">T</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">triangular</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li></ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_68"></a><span class="term">U</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">underflow_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">uniform</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_69"></a><span class="term">V</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_typedefs.html" title="Octonion Member Typedefs"><span class="index-entry-level-1">Octonion Member Typedefs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/polynomials.html" title="Polynomials"><span class="index-entry-level-1">Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_typedef.html" title="Quaternion Member Typedefs"><span class="index-entry-level-1">Quaternion Member Typedefs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li></ul></div></dd>
+<dt>
+<a name="idx_id_70"></a><span class="term">W</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">weibull</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li></ul></div>
+</li></ul></div></dd>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s02.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s04.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes/s04.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes/s04.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,294 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Macro Index</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="prev" href="s03.html" title="Typedef Index">
+<link rel="next" href="s05.html" title="Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s05.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  id1457487">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1457487"></a>Macro Index</h2></div></div></div>
+<p><a class="link" href="s04.html#idx_id_73">B</a> <a class="link" href="s04.html#idx_id_77">F</a></p>
+<div class="variablelist"><dl class="variablelist">
+<dt>
+<a name="idx_id_73"></a><span class="term">B</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_CONSTANTS_GENERATE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_DEFINE_MATH_CONSTANT</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">FAQs</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_FPU_EXCEPTION_GUARD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_HAS_LOG1P</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/log1p.html" title="log1p"><span class="index-entry-level-1">log1p</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">Changing the Policy Defaults</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies"><span class="index-entry-level-1">Mathematically Undefined Function Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_CONTROL_FP</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DECLARE_DISTRIBUTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DENORM_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DIGITS10_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">Binomial Quiz Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DOMAIN_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EVALUATION_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_CODE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_FPU</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_VARIABLE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INT_TABLE_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INT_VALUE_SUFFIX</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_POLY_ORDER</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">Iteration Limits Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">Iteration Limits Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html#math_toolkit.compilers_overview.supported_tested_compilers" title="Table 1.9. Supported/Tested Compilers"><span class="index-entry-level-1">Supported/Tested Compilers</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_REAL_CONCEPT_TESTS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">Changing the Policy Defaults</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_POLE_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_POLY_METHOD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_PROMOTE_FLOAT_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_RATIONAL_METHOD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_ROUNDING_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_SMALL_CONSTANT</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_STD_USING</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_UNDERFLOW_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_USE_C99</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_77"></a><span class="term">F</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_INFINITE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_NAN</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_NORMAL</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_SUBNORMAL</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_ZERO</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s03.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="s05.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/indexes/s05.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/indexes/s05.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,5316 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Index</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../indexes.html" title="Chapter 17. Indexes">
+<link rel="prev" href="s04.html" title="Macro Index">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+</div>
+<div class="section  id1458650">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="id1458650"></a>Index</h2></div></div></div>
+<p><a class="link" href="s05.html#idx_id_96">A</a> <a class="link" href="s05.html#idx_id_97">B</a> <a class="link" href="s05.html#idx_id_98">C</a> <a class="link" href="s05.html#idx_id_99">D</a> <a class="link" href="s05.html#idx_id_100">E</a> <a class="link" href="s05.html#idx_id_101">F</a> <a class="link" href="s05.html#idx_id_102">G</a> <a class="link" href="s05.html#idx_id_103">H</a> <a class="link" href="s05.html#idx_id_104">I</a> <a class="link" href="s05.html#idx_id_105">J</a> <a class="link" href="s05.html#idx_id_106">K</a> <a class="link" href="s05.html#idx_id_107">L</a> <a class="link" href="s05.html#idx_id_108">M</a> <a class="link" href="s05.html#idx_id_109">N</a> <a class="link" href="s05.html#idx_id_110">O</a> <a class="link" href="s05.html#idx_id_111">P</a> <a class="link" href="s05.html#idx_id_112">Q</a> <a class="link" href="s05.html#idx_id_113">R</a> <a class="link" href="s05.html#idx_id_114">S</a> <a class="link" href="s05.html#idx_id_115">T</a> <a class="link" href="s05.html#idx_id_116">
U</a> <a class="link" href="s05.html#idx_id_117">V</a> <a class="link" href="s05.html#idx_id_118">W</a> <a class="link" href="s05.html#idx_id_119">Z</a></p>
+<div class="variablelist"><dl class="variablelist">
+<dt>
+<a name="idx_id_96"></a><span class="term">A</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acosh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/acosh.html" title="acosh"><span class="index-entry-level-1">acosh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acoshf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">acoshl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">float_advance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">float_distance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Airy Ai Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/ai.html" title="Airy Ai Function"><span class="index-entry-level-1">airy_ai</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Airy Ai' Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/aip.html" title="Airy Ai' Function"><span class="index-entry-level-1">airy_ai_prime</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Airy Bi Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bi.html" title="Airy Bi Function"><span class="index-entry-level-1">airy_bi</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Airy Bi' Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bip.html" title="Airy Bi' Function"><span class="index-entry-level-1">airy_bi_prime</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_ai</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/ai.html" title="Airy Ai Function"><span class="index-entry-level-1">Airy Ai Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_ai_prime</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/aip.html" title="Airy Ai' Function"><span class="index-entry-level-1">Airy Ai' Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_bi</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bi.html" title="Airy Bi Function"><span class="index-entry-level-1">Airy Bi Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">airy_bi_prime</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/bip.html" title="Airy Bi' Function"><span class="index-entry-level-1">Airy Bi' Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/asinh.html" title="asinh"><span class="index-entry-level-1">asinh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinhf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">asinhl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assert_undefined_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_laguerrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">assoc_legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/inv_hyper/atanh.html" title="atanh"><span class="index-entry-level-1">atanh</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanhf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">atanhl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_97"></a><span class="term">B</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">bernoulli</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Bernoulli Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">bernoulli</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">bernoulli_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">skewness</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-0">bernoulli_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Bessel Functions of the First and Second Kinds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_bessel_j</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_neumann</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/sf_beta/beta_function.html" title="Beta"><span class="index-entry-level-1">beta</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/beta_function.html" title="Beta"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/sf_beta/beta_function.html" title="Beta"><span class="index-entry-level-1">Beta</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">Binomial Coefficients</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_beta_a_b_" title="Table 3.10. Errors In the Function beta(a, b, x)"><span class="index-entry-level-1">Errors In the Function beta(a, b, x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Beta Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">beta_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">find_beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibeta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibetac</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibetac_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibeta_derivative</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibeta_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibeta_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">ibeta_invb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betac</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_betac_a_b" title="Table 3.11. Errors In the Function betac(a,b,x)"><span class="index-entry-level-1">Errors In the Function betac(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">betal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-0">beta_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">binomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Binomial Coefficients</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">binomial_coefficient</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Binomial Coin-Flipping Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html" title="Binomial Coin-Flipping Example"><span class="index-entry-level-1">cdf</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Binomial Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">binomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">binomial_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">find_lower_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">find_upper_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">ibeta_derivative</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Binomial Quiz Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">constants</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">binomial_coefficient</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_binomial.html" title="Binomial Coefficients"><span class="index-entry-level-1">Binomial Coefficients</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-0">binomial_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Boost.Math Macros</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_FPU_EXCEPTION_GUARD</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_CONTROL_FP</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_INSTRUMENT_CODE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_INSTRUMENT_FPU</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_INSTRUMENT_VARIABLE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_NO_REAL_CONCEPT_TESTS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_SMALL_CONSTANT</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_STD_USING</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">BOOST_MATH_USE_C99</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">constants</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Boost.Math Tuning</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">BOOST_MATH_INT_TABLE_TYPE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">BOOST_MATH_INT_VALUE_SUFFIX</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">BOOST_MATH_MAX_POLY_ORDER</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">BOOST_MATH_POLY_METHOD</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">BOOST_MATH_RATIONAL_METHOD</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">constants</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_CONSTANTS_GENERATE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_DEFINE_MATH_CONSTANT</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">FAQs</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_FPU_EXCEPTION_GUARD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_HAS_LOG1P</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/log1p.html" title="log1p"><span class="index-entry-level-1">log1p</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">Changing the Policy Defaults</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies"><span class="index-entry-level-1">Mathematically Undefined Function Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_CONTROL_FP</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DECLARE_DISTRIBUTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DENORM_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DIGITS10_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">Binomial Quiz Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_DOMAIN_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EVALUATION_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_CODE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_FPU</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INSTRUMENT_VARIABLE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INT_TABLE_TYPE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_INT_VALUE_SUFFIX</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_POLY_ORDER</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">Iteration Limits Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">Iteration Limits Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html#math_toolkit.compilers_overview.supported_tested_compilers" title="Table 1.9. Supported/Tested Compilers"><span class="index-entry-level-1">Supported/Tested Compilers</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_NO_REAL_CONCEPT_TESTS</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">Changing the Policy Defaults</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_POLE_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_POLY_METHOD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_PROMOTE_FLOAT_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_RATIONAL_METHOD</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_ROUNDING_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_SMALL_CONSTANT</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_STD_USING</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_UNDERFLOW_ERROR_POLICY</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">Using Macros to Change the Policy Defaults</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">BOOST_MATH_USE_C99</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">brent_find_minima</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">Locating Function Minima: Brent's algorithm</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_98"></a><span class="term">C</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">c</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">C99 and C++ TR1 C-style Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">acosh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">acoshf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">acoshl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">asinh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">asinhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">asinhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">assoc_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">atanh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">atanhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">atanhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">betaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">betal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cbrt</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cbrtf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cbrtl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">comp_ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">conf_hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">conf_hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">conf_hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">copysign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">copysignf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">copysignl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_i</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_if</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_il</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_j</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_jf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_jl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_k</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_kf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_bessel_kl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">cyl_neumannl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">double_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erfc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erfcf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erfcl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erff</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">erfl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">exp2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">exp2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">exp2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expm1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">expm1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fdim</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fdimf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fdiml</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">float_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmax</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmaxf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmaxl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fmin</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fminf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">fminl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hermite</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hermitef</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hermitel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hypot</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hypotf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">hypotl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ilogb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ilogbf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">ilogbl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llrint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llrintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llrintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">llroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log1p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log1pf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log1pl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">log2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">logb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">logbf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">logbl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lrint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lrintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lrintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">lroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nan</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nanf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nanl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nearbyint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nearbyintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nearbyintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nextafter</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nextafterf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nextafterl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nexttoward</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nexttowardf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">nexttowardl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remainder</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remainderf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remainderl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remquo</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remquof</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">remquol</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">riemann_zeta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">riemann_zetaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">riemann_zetal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">rint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">rintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">rintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">round</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">roundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">roundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalbln</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalblnf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalblnl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalbn</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalbnf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">scalbnl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_bessel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_besself</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_bessell</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">sph_neumannl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">tgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">tgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">trunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">truncf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">truncl</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">C99 and TR1 C Functions Overview</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">acosh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">acoshf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">acoshl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">asinh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">asinhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">asinhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">assoc_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">atanh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">atanhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">atanhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">betaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">betal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cbrt</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cbrtf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cbrtl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">comp_ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">conf_hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">conf_hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">conf_hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">copysign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">copysignf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">copysignl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_i</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_if</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_il</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_j</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_jf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_jl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_k</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_kf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_bessel_kl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">cyl_neumannl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">double_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erfc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erfcf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erfcl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erff</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">erfl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">exp2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">exp2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">exp2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expm1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">expm1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fdim</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fdimf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fdiml</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">float_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmax</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmaxf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmaxl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fmin</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fminf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">fminl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hermite</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hermitef</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hermitel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hypot</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hypotf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">hypotl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ilogb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ilogbf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">ilogbl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llrint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llrintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llrintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">llroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log1p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log1pf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log1pl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">log2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">logb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">logbf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">logbl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lrint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lrintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lrintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">lroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nan</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nanf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nanl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nearbyint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nearbyintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nearbyintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nextafter</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nextafterf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nextafterl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nexttoward</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nexttowardf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">nexttowardl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remainder</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remainderf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remainderl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remquo</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remquof</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">remquol</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">riemann_zeta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">riemann_zetaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">riemann_zetal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">rint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">rintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">rintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">round</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">roundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">roundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalbln</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalblnf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalblnl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalbn</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalbnf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">scalbnl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_bessel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_besself</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_bessell</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">sph_neumannl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">tgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">tgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">trunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">truncf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">truncl</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">C99 C Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">acosh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">acoshf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">acoshl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">asinh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">asinhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">asinhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">atanh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">atanhf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">atanhl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">cbrt</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">cbrtf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">cbrtl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">copysign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">copysignf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">copysignl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">double_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erfc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erfcf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erfcl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erff</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">erfl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">expm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">expm1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">expm1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">float_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fmax</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fmaxf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fmaxl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fmin</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fminf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">fminl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">hypot</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">hypotf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">hypotl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">llround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">llroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">llroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">log1p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">log1pf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">log1pl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lroundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">lroundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nextafter</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nextafterf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nextafterl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nexttoward</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nexttowardf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">nexttowardl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">round</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">roundf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">roundl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">tgammaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">tgammal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">trunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">truncf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">truncl</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Calling User Defined Error Handlers</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">erf_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">msg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">promote_args</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_denorm_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_domain_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_evaluation_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_indeterminate_result_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_overflow_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_pole_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_rounding_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">user_underflow_error</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cauchy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">Find mean and standard deviation example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Cauchy-Lorentz Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">cauchy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">cauchy_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cauchy_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrt</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/cbrt.html" title="cbrt"><span class="index-entry-level-1">cbrt</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrtf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cbrtl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cdf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html" title="Binomial Coin-Flipping Example"><span class="index-entry-level-1">Binomial Coin-Flipping Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies"><span class="index-entry-level-1">Discrete Quantile Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/future.html" title="Extras/Future Directions"><span class="index-entry-level-1">Extras/Future Directions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">changesign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Changing the Policy Defaults</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Changing the Policy on an Ad Hoc Basis for the Special Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions"><span class="index-entry-level-1">tgamma</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">checked_narrowing_cast</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/error_handling.html" title="Error Handling"><span class="index-entry-level-1">Error Handling</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">chf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Chi Squared Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">chi_squared</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">chi_squared_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">find_degrees_of_freedom</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">gamma_p_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">gamma_q_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">value</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-0">chi_squared_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Compile time GCD and LCM determination</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compile_time.html" title="Compile time GCD and LCM determination"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compile_time.html" title="Compile time GCD and LCM determination"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Compile Time Power of a Runtime Base</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">log2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">user_overflow_error</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Compilers</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html" title="Compilers"><span class="index-entry-level-1">range</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Complements are supported too - and when to use them</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">quantile</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">comp_ellint_3l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Conceptual Requirements for Distribution Types</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_concept.html" title="Conceptual Requirements for Distribution Types"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_concept.html" title="Conceptual Requirements for Distribution Types"><span class="index-entry-level-1">quantile</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Conceptual Requirements for Real Number Types</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">iround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">itrunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">ldexp</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">round</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">trunc</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">confidence intervals on the mean with the Students-t distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution"><span class="index-entry-level-1">t</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hyperg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hypergf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conf_hypergl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conj</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">constants</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">Binomial Quiz Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_macros" title="Table 1.11. Boost.Math Macros"><span class="index-entry-level-1">Boost.Math Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compile_time.html" title="Compile time GCD and LCM determination"><span class="index-entry-level-1">Compile time GCD and LCM determination</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/credits.html" title="Credits and Acknowledgements"><span class="index-entry-level-1">Credits and Acknowledgements</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-1">Digamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/directories.html" title="Directory and File Structure"><span class="index-entry-level-1">Directory and File Structure</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">Error Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">FAQs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/intro0.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../constants.html" title="Chapter 6. Mathematical Constants"><span class="index-entry-level-1">Mathematical Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/minimax.html" title="Minimax Approximations and the Remez Algorithm"><span class="index-entry-level-1">Minimax Approximations and the Remez Algorithm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html" title="Riemann Zeta Function"><span class="index-entry-level-1">Riemann Zeta Function</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">The Lanczos Approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants.html" title="The Mathematical Constants"><span class="index-entry-level-1">The Mathematical Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/remez.html" title="The Remez Method"><span class="index-entry-level-1">The Remez Method</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/non_templ.html" title="Use in non-template code"><span class="index-entry-level-1">Use in non-template code</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">Use in template code</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries"><span class="index-entry-level-1">Using Boost.Math with High-Precision Floating-Point Libraries</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_multiprecision.html" title="Using Boost.Multiprecision"><span class="index-entry-level-1">Using Boost.Multiprecision</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/float128.html" title="Using with GCC's __float128 datatype"><span class="index-entry-level-1">Using with GCC's __float128 datatype</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">construction_traits</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Continued Fraction Evaluation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">continued_fraction_a</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">continued_fraction_b</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">continued_fraction_a</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">Continued Fraction Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">continued_fraction_b</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">Continued Fraction Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">conventions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/conventions.html" title="Document Conventions"><span class="index-entry-level-1">Document Conventions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysignf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">copysignl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/cos_pi.html" title="cos_pi"><span class="index-entry-level-0">cos_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Credits and Acknowledgements</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/credits.html" title="Credits and Acknowledgements"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/credits.html" title="Credits and Acknowledgements"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cylindrical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cylindrospherical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_i</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_if</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_il</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_jf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_jl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_k</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_kf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_kl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumannf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumannl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_99"></a><span class="term">D</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">default_policy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Defining New Constants</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">BOOST_CONSTANTS_GENERATE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">BOOST_DEFINE_MATH_CONSTANT</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">BOOST_MATH_STD_USING</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">get</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">get_from_string</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">denorm_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Derivative of the Incomplete Beta Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function"><span class="index-entry-level-1">ibeta_derivative</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Derivative of the Incomplete Gamma Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function"><span class="index-entry-level-1">gamma_p_derivative</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Digamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-1">digamma</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-0">digamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Directory and File Structure</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/directories.html" title="Directory and File Structure"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Discrete Quantile Policies</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies"><span class="index-entry-level-1">cdf</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">discrete_quantile_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Distribution Algorithms</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">find_location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">find_scale</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Distribution Construction Examples</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">domain_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_double_factorial.html" title="Double Factorial"><span class="index-entry-level-0">Double Factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_double_factorial.html" title="Double Factorial"><span class="index-entry-level-0">double_factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">double_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_100"></a><span class="term">E</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the First Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the Second Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form"><span class="index-entry-level-1">Elliptic Integrals of the Third Kind - Legendre Form</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_3l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ellint_rj</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">Elliptic Integrals - Carlson Form</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Elliptic Integral Overview</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">expression</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Elliptic Integrals - Carlson Form</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">ellint_rc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">ellint_rd</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">ellint_rf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_carlson.html" title="Elliptic Integrals - Carlson Form"><span class="index-entry-level-1">ellint_rj</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Elliptic Integrals of the First Kind - Legendre Form</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form"><span class="index-entry-level-1">ellint_1</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Elliptic Integrals of the Second Kind - Legendre Form</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form"><span class="index-entry-level-1">ellint_2</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Elliptic Integrals of the Third Kind - Legendre Form</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form"><span class="index-entry-level-1">ellint_3</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">epsilon</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">Locating Function Minima: Brent's algorithm</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">eps_tolerance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_ceil</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_floor</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">equal_nearest_integer</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">Error Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erf_z" title="Table 3.12. Errors In the Function erf(z)"><span class="index-entry-level-1">Errors In the Function erf(z)</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">Error Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erfc_z" title="Table 3.13. Errors In the Function erfc(z)"><span class="index-entry-level-1">Errors In the Function erfc(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfcf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfcl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfc_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erff</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erfl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">erf_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Error Function Inverses</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">erfc_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">erf_inv</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Error Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">erf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Functions"><span class="index-entry-level-1">erfc</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Error Handling</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/error_handling.html" title="Error Handling"><span class="index-entry-level-1">checked_narrowing_cast</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Error Handling Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">BOOST_MATH_DOMAIN_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">infinity</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Error Handling Policies</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_denorm_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_domain_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_evaluation_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_indeterminate_result_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_overflow_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_pole_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_rounding_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">user_underflow_error</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function beta(a, b, x)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_beta_a_b_" title="Table 3.10. Errors In the Function beta(a, b, x)"><span class="index-entry-level-1">beta</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function betac(a,b,x)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_betac_a_b" title="Table 3.11. Errors In the Function betac(a,b,x)"><span class="index-entry-level-1">betac</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function erf(z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erf_z" title="Table 3.12. Errors In the Function erf(z)"><span class="index-entry-level-1">erf</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function erfc(z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html#math_toolkit.sf_erf.error_function.errors_in_the_function_erfc_z" title="Table 3.13. Errors In the Function erfc(z)"><span class="index-entry-level-1">erfc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function expint(n, z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html#math_toolkit.expint.expint_n.errors_in_the_function_expint_n_" title="Table 3.31. Errors In the Function expint(n, z)"><span class="index-entry-level-1">expint</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function expint(z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html#math_toolkit.expint.expint_i.errors_in_the_function_expint_z" title="Table 3.32. Errors In the Function expint(z)"><span class="index-entry-level-1">expint</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function gamma_p(a,z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_p_a" title="Table 3.3. Errors In the Function gamma_p(a,z)"><span class="index-entry-level-1">gamma_p</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function gamma_q(a,z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_q_a" title="Table 3.4. Errors In the Function gamma_q(a,z)"><span class="index-entry-level-1">gamma_q</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function ibeta(a,b,x)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b" title="Table 3.8. Errors In the Function ibeta(a,b,x)"><span class="index-entry-level-1">ibeta</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function ibetac(a,b,x)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_" title="Table 3.9. Errors In the Function ibetac(a,b,x)"><span class="index-entry-level-1">ibetac</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function tgamma(a,z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_a_" title="Table 3.6. Errors In the Function tgamma(a,z)"><span class="index-entry-level-1">tgamma</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function tgamma_delta_ratio(a, delta)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_de" title="Table 3.1. Errors In the Function tgamma_delta_ratio(a, delta)"><span class="index-entry-level-1">tgamma_delta_ratio</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function tgamma_lower(a,z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_lo" title="Table 3.5. Errors In the Function tgamma_lower(a,z)"><span class="index-entry-level-1">tgamma_lower</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function tgamma_ratio(a, b)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ra" title="Table 3.2. Errors In the Function tgamma_ratio(a, b)"><span class="index-entry-level-1">tgamma_ratio</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Errors In the Function zeta(z)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html#math_toolkit.zetas.zeta.errors_in_the_function_zeta_z" title="Table 3.30. Errors In the Function zeta(z)"><span class="index-entry-level-1">zeta</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation"><span class="index-entry-level-1">variance</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_even_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_odd_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_polynomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluate_rational</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">evaluation_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exp2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html#math_toolkit.expint.expint_n.errors_in_the_function_expint_n_" title="Table 3.31. Errors In the Function expint(n, z)"><span class="index-entry-level-1">Errors In the Function expint(n, z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html#math_toolkit.expint.expint_i.errors_in_the_function_expint_z" title="Table 3.32. Errors In the Function expint(z)"><span class="index-entry-level-1">Errors In the Function expint(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html" title="Exponential Integral En"><span class="index-entry-level-1">Exponential Integral En</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/expm1.html" title="expm1"><span class="index-entry-level-1">expm1</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expm1l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">exponential</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Exponential Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">exponential</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">exponential_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Exponential Integral Ei</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">expint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">zeta</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Exponential Integral En</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_n.html" title="Exponential Integral En"><span class="index-entry-level-1">expint</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-0">exponential_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">expression</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution"><span class="index-entry-level-1">Calculating confidence intervals on the mean with the Students-t distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compile_time.html" title="Compile time GCD and LCM determination"><span class="index-entry-level-1">Compile time GCD and LCM determination</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_concept.html" title="Conceptual Requirements for Distribution Types"><span class="index-entry-level-1">Conceptual Requirements for Distribution Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/cf.html" title="Continued Fraction Evaluation"><span class="index-entry-level-1">Continued Fraction Evaluation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/credits.html" title="Credits and Acknowledgements"><span class="index-entry-level-1">Credits and Acknowledgements</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">Elliptic Integral Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">FAQs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/intro0.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">Inverse Chi-Squared Distribution Bayes Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN"><span class="index-entry-level-1">Jacobi Elliptic SN, CN and DN</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies"><span class="index-entry-level-1">Mathematically Undefined Function Policies</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jac_over.html" title="Overvew of the Jacobi Elliptic Functions"><span class="index-entry-level-1">Overvew of the Jacobi Elliptic Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">The Lanczos Approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/remez.html" title="The Remez Method"><span class="index-entry-level-1">The Remez Method</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/todo.html" title="To Do"><span class="index-entry-level-1">To Do</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">Use in template code</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR or GMP - High-Precision Floating-Point Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/using_test.html" title="Using without expression templates for Boost.Test and others"><span class="index-entry-level-1">Using without expression templates for Boost.Test and others</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Extras/Future Directions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/future.html" title="Extras/Future Directions"><span class="index-entry-level-1">cdf</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Extreme Value Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">extreme_value</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">extreme_value_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">extreme_value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-0">extreme_value_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">e_float</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">Using e_float Library</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_101"></a><span class="term">F</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">F Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">fisher_f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">fisher_f_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">ibeta_derivative</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Facets for Floating-Point Infinities and NaNs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">nonfinite_num_get</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">nonfinite_num_put</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Factorial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">factorial</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">max_factorial</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-0">factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_falling_factorial.html" title="Falling Factorial"><span class="index-entry-level-0">Falling Factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_falling_factorial.html" title="Falling Factorial"><span class="index-entry-level-0">falling_factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FAQs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">BOOST_DEFINE_MATH_CONSTANT</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/FAQ.html" title="FAQs"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdim</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdimf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fdiml</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Find Location (Mean) Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">cauchy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">standard_deviation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Find mean and standard deviation example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">cauchy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">scale</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Find Scale (Standard Deviation) Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">standard_deviation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Finding the Next Greater Representable Value (float_next)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_next.html" title="Finding the Next Greater Representable Value (float_next)"><span class="index-entry-level-1">float_next</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Finding the Next Representable Value in a Specific Direction (nextafter)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)"><span class="index-entry-level-1">nextafter</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Finding the Next Smaller Representable Value (float_prior)</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)"><span class="index-entry-level-1">float_prior</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Finding Zeros of Bessel Functions of the First and Second Kinds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_bessel_j_zero</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_neumann_zero</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_degrees_of_freedom</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_location</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">Distribution Algorithms</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_lower_bound_on_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_non_centrality</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_scale</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dist_algorithms.html" title="Distribution Algorithms"><span class="index-entry-level-1">Distribution Algorithms</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">find_upper_bound_on_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fisher_f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis"><span class="index-entry-level-1">Setting Policies for Distributions on an Ad Hoc Basis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fisher_f_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Floating-Point Classification: Infinities and NaNs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">fpclassify</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">FP_INFINITE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">FP_NAN</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">FP_NORMAL</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">FP_SUBNORMAL</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">FP_ZERO</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">isfinite</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">isinf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">isnan</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">isnormal</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_advance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_distance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance"><span class="index-entry-level-1">Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_next.html" title="Finding the Next Greater Representable Value (float_next)"><span class="index-entry-level-1">Finding the Next Greater Representable Value (float_next)</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_prior</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)"><span class="index-entry-level-1">Finding the Next Smaller Representable Value (float_prior)</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">float_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmax</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaxf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmaxl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fmin</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fminf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fminl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">fpclassify</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_INFINITE</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_NAN</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_NORMAL</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_SUBNORMAL</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">FP_ZERO</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_102"></a><span class="term">G</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Gamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">tgamma1pm1</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Gamma (and Erlang) Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">gamma_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">gamma_p_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">gamma_q_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">mode</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_p_a" title="Table 3.3. Errors In the Function gamma_p(a,z)"><span class="index-entry-level-1">Errors In the Function gamma_p(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_derivative</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function"><span class="index-entry-level-1">Derivative of the Incomplete Gamma Function</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_p_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_q_a" title="Table 3.4. Errors In the Function gamma_q(a,z)"><span class="index-entry-level-1">Errors In the Function gamma_q(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gamma_q_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">Incomplete Gamma Function Inverses</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gcd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">GCD Function Object</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">gcd_evaluator</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">second_argument_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">gcd_evaluator</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">GCD Function Object</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Generic operations common to all distributions are non-member functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">cdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">pdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">value</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">geometric</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Geometric Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">find_lower_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">find_upper_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">geometric</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">geometric_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">skewness</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Geometric Distribution Examples</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">normal</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-0">geometric_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get_from_string</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">get_user_parameter_info</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Graphing, Profiling, and Generating Test Data for Special Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">get_user_parameter_info</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">insert</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">make_periodic_param</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">make_power_param</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">make_random_param</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">test_data</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">upper_incomplete_gamma_fract</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">write_code</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">write_csv</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_103"></a><span class="term">H</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">halley_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hazard</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermite</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">Hermite Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Hermite Polynomials</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">hermite</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">hermite_next</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermitef</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermitel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hermite_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/hermite.html" title="Hermite Polynomials"><span class="index-entry-level-1">Hermite Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">History and What's New</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">mode</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">nextafter</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">value</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hyperg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergeometric</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Hypergeometric Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">hypergeometric</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">hypergeometric_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-0">hypergeometric_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypergl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypot</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/hypot.html" title="hypot"><span class="index-entry-level-1">hypot</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypotf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">hypotl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_104"></a><span class="term">I</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b" title="Table 3.8. Errors In the Function ibeta(a,b,x)"><span class="index-entry-level-1">Errors In the Function ibeta(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html#math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_" title="Table 3.9. Errors In the Function ibetac(a,b,x)"><span class="index-entry-level-1">Errors In the Function ibetac(a,b,x)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">Incomplete Beta Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibetac_invb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_derivative</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function"><span class="index-entry-level-1">Derivative of the Incomplete Beta Function</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_inv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_inva</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ibeta_invb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">The Incomplete Beta Function Inverses</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogbf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ilogbl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Implementation Notes</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">BOOST_DEFINE_MATH_CONSTANT</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">BOOST_MATH_DOMAIN_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">cdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">infinity</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">median</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">triangular_distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Incomplete Beta Function Inverses</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibetac_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibetac_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibetac_invb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibeta_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibeta_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses"><span class="index-entry-level-1">ibeta_invb</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Incomplete Beta Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">betac</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">ibeta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/ibeta_function.html" title="Incomplete Beta Functions"><span class="index-entry-level-1">ibetac</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Incomplete Gamma Function Inverses</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">gamma_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">gamma_p_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">gamma_p_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">gamma_q_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses"><span class="index-entry-level-1">gamma_q_inva</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Incomplete Gamma Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">gamma_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">gamma_q</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">tgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">tgamma_lower</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">indeterminate_result_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">infinity</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">insert</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Introduction</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/intro0.html" title="Introduction"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/intro0.html" title="Introduction"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/intro.html" title="Introduction"><span class="index-entry-level-1">nan</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Inverse Chi Squared Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">inverse_chi_squared</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">inverse_chi_squared_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Inverse Chi-Squared Distribution Bayes Example</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Inverse Gamma Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">inverse_gamma_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">kurtosis_excess</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Inverse Gaussian (or Inverse Normal) Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">inverse_gaussian</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">inverse_gaussian_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-0">inverse_chi_squared_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-0">inverse_gamma_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_gaussian</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">inverse_gaussian_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">iround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isfinite</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isinf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isnan</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">isnormal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fpclass.html" title="Floating-Point Classification: Infinities and NaNs"><span class="index-entry-level-1">Floating-Point Classification: Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Iteration Limits Policies</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/iteration_pol.html" title="Iteration Limits Policies"><span class="index-entry-level-1">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">itrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_105"></a><span class="term">J</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function cd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cd.html" title="Jacobi Elliptic Function cd"><span class="index-entry-level-1">jacobi_cd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function cn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cn.html" title="Jacobi Elliptic Function cn"><span class="index-entry-level-1">jacobi_cn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function cs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cs.html" title="Jacobi Elliptic Function cs"><span class="index-entry-level-1">jacobi_cs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function dc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dc.html" title="Jacobi Elliptic Function dc"><span class="index-entry-level-1">jacobi_dc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function dn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dn.html" title="Jacobi Elliptic Function dn"><span class="index-entry-level-1">jacobi_dn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function ds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ds.html" title="Jacobi Elliptic Function ds"><span class="index-entry-level-1">jacobi_ds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function nc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nc.html" title="Jacobi Elliptic Function nc"><span class="index-entry-level-1">jacobi_nc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function nd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nd.html" title="Jacobi Elliptic Function nd"><span class="index-entry-level-1">jacobi_nd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function ns</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ns.html" title="Jacobi Elliptic Function ns"><span class="index-entry-level-1">jacobi_ns</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function sc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sc.html" title="Jacobi Elliptic Function sc"><span class="index-entry-level-1">jacobi_sc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function sd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sd.html" title="Jacobi Elliptic Function sd"><span class="index-entry-level-1">jacobi_sd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic Function sn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sn.html" title="Jacobi Elliptic Function sn"><span class="index-entry-level-1">jacobi_sn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Jacobi Elliptic SN, CN and DN</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN"><span class="index-entry-level-1">jacobi_elliptic</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cd.html" title="Jacobi Elliptic Function cd"><span class="index-entry-level-1">Jacobi Elliptic Function cd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cn.html" title="Jacobi Elliptic Function cn"><span class="index-entry-level-1">Jacobi Elliptic Function cn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_cs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_cs.html" title="Jacobi Elliptic Function cs"><span class="index-entry-level-1">Jacobi Elliptic Function cs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_dc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dc.html" title="Jacobi Elliptic Function dc"><span class="index-entry-level-1">Jacobi Elliptic Function dc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_dn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_dn.html" title="Jacobi Elliptic Function dn"><span class="index-entry-level-1">Jacobi Elliptic Function dn</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_ds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ds.html" title="Jacobi Elliptic Function ds"><span class="index-entry-level-1">Jacobi Elliptic Function ds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_elliptic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN"><span class="index-entry-level-1">Jacobi Elliptic SN, CN and DN</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_nc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nc.html" title="Jacobi Elliptic Function nc"><span class="index-entry-level-1">Jacobi Elliptic Function nc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_nd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_nd.html" title="Jacobi Elliptic Function nd"><span class="index-entry-level-1">Jacobi Elliptic Function nd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_ns</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_ns.html" title="Jacobi Elliptic Function ns"><span class="index-entry-level-1">Jacobi Elliptic Function ns</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sc.html" title="Jacobi Elliptic Function sc"><span class="index-entry-level-1">Jacobi Elliptic Function sc</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sd</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sd.html" title="Jacobi Elliptic Function sd"><span class="index-entry-level-1">Jacobi Elliptic Function sd</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">jacobi_sn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jacobi_sn.html" title="Jacobi Elliptic Function sn"><span class="index-entry-level-1">Jacobi Elliptic Function sn</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_106"></a><span class="term">K</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kahan_sum_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Known Issues, and TODO List</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">cyl_bessel_j</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">cyl_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">T</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kurtosis</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">kurtosis_excess</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_107"></a><span class="term">L</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">l1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">Laguerre (and Associated) Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Laguerre (and Associated) Polynomials</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">laguerre_next</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laguerre_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials"><span class="index-entry-level-1">Laguerre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Lanczos approximation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_beta/beta_function.html" title="Beta"><span class="index-entry-level-1">Beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/digamma.html" title="Digamma"><span class="index-entry-level-1">Digamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">Lanczos approximation</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/refs.html" title="References"><span class="index-entry-level-1">References</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">The Lanczos Approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_ntl.html" title="Using NTL Library"><span class="index-entry-level-1">Using NTL Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR or GMP - High-Precision Floating-Point Library</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">laplace</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Laplace Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">laplace</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">laplace_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-0">laplace_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lcm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">LCM Function Object</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">lcm_evaluator</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">second_argument_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lcm_evaluator</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">LCM Function Object</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ldexp</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Legendre (and Associated) Polynomials</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">legendre_next</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">legendre_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">legendre_q</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_next</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">legendre_q</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/legendre.html" title="Legendre (and Associated) Polynomials"><span class="index-entry-level-1">Legendre (and Associated) Polynomials</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgammaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lgammal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llrintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llroundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">llroundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lltrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Locating Function Minima: Brent's algorithm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">brent_find_minima</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/minima.html" title="Locating Function Minima: Brent's algorithm"><span class="index-entry-level-1">epsilon</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">location</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Log Gamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">lgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">tgamma</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Log Normal Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">lognormal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">lognormal_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1p</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/log1p.html" title="log1p"><span class="index-entry-level-1">BOOST_HAS_LOG1P</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/powers/log1p.html" title="log1p"><span class="index-entry-level-1">log1p</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1pf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1pl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log1p_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">log2l</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logb</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logbf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logbl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">logistic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Logistic Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">logistic</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">logistic_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-0">logistic_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lognormal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lognormal_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lrintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lround</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lroundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">lroundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">ltrunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_108"></a><span class="term">M</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_periodic_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_policy</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_power_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">make_random_param</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Mathematical Constants</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../constants.html" title="Chapter 6. Mathematical Constants"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Mathematically Undefined Function Policies</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies"><span class="index-entry-level-1">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">max_factorial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mean</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">median</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Minimax Approximations and the Remez Algorithm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/minimax.html" title="Minimax Approximations and the Remez Algorithm"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">mode</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Modified Bessel Functions of the First and Second Kinds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_bessel_i</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_bessel_k</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">msg</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">multipolar</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_109"></a><span class="term">N</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Namespaces</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/namespaces.html" title="Namespaces"><span class="index-entry-level-1">students_t</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nan</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/intro.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nanf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nanl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/navigation.html" title="Navigation"><span class="index-entry-level-0">navigation</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nearbyintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Negative Binomial Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">find_lower_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">find_upper_bound_on_p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibetac_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibetac_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibetac_invb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibeta_inv</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibeta_inva</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">ibeta_invb</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">negative_binomial_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">r</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Negative Binomial Sales Quota Example.</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">quantile</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">negative_binomial</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-0">negative_binomial_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">newton_raphson_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafter</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)"><span class="index-entry-level-1">Finding the Next Representable Value in a Specific Direction (nextafter)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafterf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nextafterl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttoward</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttowardf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nexttowardl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Non-Member Properties</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">cdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">chf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">hazard</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">kurtosis</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">kurtosis_excess</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">median</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">mode</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">pdf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">range</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">skewness</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">standard_deviation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Noncentral Beta Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">non_central_beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">non_central_beta_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Noncentral Chi-Squared Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">find_degrees_of_freedom</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">find_non_centrality</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">non_central_chi_squared</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">non_central_chi_squared_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Noncentral F Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">non_central_f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">non_central_f_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Noncentral T Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">non_central_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">non_central_t_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nonfinite_num_get</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">Facets for Floating-Point Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">nonfinite_num_put</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">Facets for Floating-Point Infinities and NaNs</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_beta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_beta_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_chi_squared</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_chi_squared_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_f</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_f_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">non_central_t_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">norm</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">Geometric Distribution Examples</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Normal (Gaussian) Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">erfc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">normal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">normal_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">standard_deviation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normalise</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">normal_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_110"></a><span class="term">O</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">octonion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">Octonion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem0.html" title="Octonion Non-Member Operators"><span class="index-entry-level-1">Octonion Non-Member Operators</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Creation Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">cylindrical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">multipolar</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">spherical</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Member Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">unreal</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Member Typedefs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_typedefs.html" title="Octonion Member Typedefs"><span class="index-entry-level-1">value_type</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Non-Member Operators</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem0.html" title="Octonion Non-Member Operators"><span class="index-entry-level-1">octonion</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Specializations</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">unreal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Octonion Value Operations</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">conj</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">l1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">norm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">sup</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">unreal</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">overflow_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Overvew of the Jacobi Elliptic Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/jacobi/jac_over.html" title="Overvew of the Jacobi Elliptic Functions"><span class="index-entry-level-1">expression</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Owen's T function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/owens_t.html" title="Owen's T function"><span class="index-entry-level-1">owens_t</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">owens_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/owens_t.html" title="Owen's T function"><span class="index-entry-level-1">Owen's T function</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_111"></a><span class="term">P</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pareto</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Pareto Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">pareto</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">pareto_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-0">pareto_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pdf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Performance Tuning Macros</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">BOOST_MATH_INT_TABLE_TYPE</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">BOOST_MATH_MAX_POLY_ORDER</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">BOOST_MATH_POLY_METHOD</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">BOOST_MATH_RATIONAL_METHOD</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">poisson</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Poisson Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">poisson</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">poisson_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-0">poisson_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">pole_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Policy Class Reference</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">assert_undefined_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">default_policy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">denorm_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">discrete_quantile_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">domain_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">evaluation_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">indeterminate_result_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">make_policy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">normalise</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">overflow_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">pole_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">precision_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">promote_double_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">promote_float_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">rounding_error_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">underflow_error_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">policy_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Polynomial and Rational Function Evaluation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">evaluate_even_polynomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">evaluate_odd_polynomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">evaluate_polynomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">evaluate_rational</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">T</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Polynomials</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/polynomials.html" title="Polynomials"><span class="index-entry-level-1">value_type</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/powm1.html" title="powm1"><span class="index-entry-level-0">powm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">precision_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_args</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_double_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">promote_float_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_112"></a><span class="term">Q</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">quantile</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_concept.html" title="Conceptual Requirements for Distribution Types"><span class="index-entry-level-1">Conceptual Requirements for Distribution Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">Negative Binomial Sales Quota Example.</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">Some Miscellaneous Examples of the Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">quaternion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">Quaternion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem.html" title="Quaternion Non-Member Operators"><span class="index-entry-level-1">Quaternion Non-Member Operators</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Creation Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">cylindrical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">cylindrospherical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">multipolar</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">semipolar</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">spherical</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Member Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">quaternion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">unreal</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Member Typedefs</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_typedef.html" title="Quaternion Member Typedefs"><span class="index-entry-level-1">value_type</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Non-Member Operators</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/non_mem.html" title="Quaternion Non-Member Operators"><span class="index-entry-level-1">quaternion</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Specializations</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">quaternion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">unreal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Quaternion Value Operations</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">conj</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">l1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">norm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">sup</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">unreal</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_113"></a><span class="term">R</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">r</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">range</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html" title="Compilers"><span class="index-entry-level-1">Compilers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Ratios of Gamma Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">tgamma_delta_ratio</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">tgamma_ratio</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rayleigh</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Rayleigh Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">rayleigh</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">rayleigh_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-0">rayleigh_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Reference</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">nan</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">References</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/refs.html" title="References"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Relative Error and Testing</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">relative_error</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">test</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">relative_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">Relative Error and Testing</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainder</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainderf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remainderl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Remez Method</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/remez.html" title="The Remez Method"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/remez.html" title="The Remez Method"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquo</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquof</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">remquol</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Representation Distance Between Two Floating Point Values (ULP) float_distance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">float_distance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">value</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Riemann Zeta Function</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html" title="Riemann Zeta Function"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html" title="Riemann Zeta Function"><span class="index-entry-level-1">zeta</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zetaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">riemann_zetal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rint</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rintf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rintl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_rising_factorial.html" title="Rising Factorial"><span class="index-entry-level-0">Rising Factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_rising_factorial.html" title="Rising Factorial"><span class="index-entry-level-0">rising_factorial</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">cbrt</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">halley_iterate</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">newton_raphson_iterate</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">schroeder_iterate</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">eps_tolerance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">equal_ceil</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">equal_floor</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">equal_nearest_integer</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">tol</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">round</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">Rounding Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">roundf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Rounding Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">iround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">llround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">lround</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/round.html" title="Rounding Functions"><span class="index-entry-level-1">round</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">rounding_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">roundl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_114"></a><span class="term">S</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbln</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalblnf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalblnl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbn</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbnf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scalbnl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">scale</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example"><span class="index-entry-level-1">Find mean and standard deviation example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">Inverse Chi-Squared Distribution Bayes Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">schroeder_iterate</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder"><span class="index-entry-level-1">Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">second_argument_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gcd_function_object.html" title="GCD Function Object"><span class="index-entry-level-1">GCD Function Object</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lcm_function_object.html" title="LCM Function Object"><span class="index-entry-level-1">LCM Function Object</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">semipolar</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Series Evaluation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">kahan_sum_series</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">log1p</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">log1p_series</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">sum_series</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Setting Polices at Namespace Scope</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">BOOST_MATH_DECLARE_DISTRIBUTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">cauchy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">lgamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">tgamma</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Setting Policies at Namespace or Translation Unit Scope</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">BOOST_MATH_DECLARE_DISTRIBUTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">cauchy</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">norm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">normal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">promote_args</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">tgamma</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Setting Policies for Distributions on an Ad Hoc Basis</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis"><span class="index-entry-level-1">fisher_f</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">shape</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sign</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Sign Manipulation Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">changesign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">copysign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">sign</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">signbit</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">signbit</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sign_functions.html" title="Sign Manipulation Functions"><span class="index-entry-level-1">Sign Manipulation Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sinc/sinc_pi.html" title="sinc_pi"><span class="index-entry-level-0">sinc_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sinc/sinhc_pi.html" title="sinhc_pi"><span class="index-entry-level-0">sinhc_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/sin_pi.html" title="sin_pi"><span class="index-entry-level-0">sin_pi</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Skew Normal Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">location</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">normal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">skew_normal_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">T</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">skewness</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-0">skew_normal_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Some Miscellaneous Examples of the Normal (Gaussian) Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">test</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_create.html" title="Octonion Creation Functions"><span class="index-entry-level-1">Octonion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/create.html" title="Quaternion Creation Functions"><span class="index-entry-level-1">Quaternion Creation Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis0.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Spherical Bessel Functions of the First and Second Kinds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">sph_bessel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">sph_neumann</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Spherical Harmonics</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">spherical_harmonic</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">spherical_harmonic_i</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">spherical_harmonic_r</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic_i</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">spherical_harmonic_r</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/sph_harm.html" title="Spherical Harmonics"><span class="index-entry-level-1">Spherical Harmonics</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_bessel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_besself</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_bessell</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendre</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendref</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_legendrel</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumann</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical Bessel Functions of the First and Second Kinds</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumannf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sph_neumannl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/sqrt1pm1.html" title="sqrt1pm1"><span class="index-entry-level-0">sqrt1pm1</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">standard_deviation</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Students t Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">find_degrees_of_freedom</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">ibetac</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">students_t</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">students_t_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">students_t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/namespaces.html" title="Namespaces"><span class="index-entry-level-1">Namespaces</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-0">students_t_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sum_series</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/series_evaluation.html" title="Series Evaluation"><span class="index-entry-level-1">Series Evaluation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">sup</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Supported/Tested Compilers</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/compilers_overview.html#math_toolkit.compilers_overview.supported_tested_compilers" title="Table 1.9. Supported/Tested Compilers"><span class="index-entry-level-1">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Synopsis</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">conj</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">cylindrical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">cylindrospherical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">gcd</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">l1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis1.html" title="Synopsis"><span class="index-entry-level-1">lcm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">multipolar</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">norm</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">semipolar</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis0.html" title="Synopsis"><span class="index-entry-level-1">spherical</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">sup</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">unreal</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_115"></a><span class="term">T</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">t</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution"><span class="index-entry-level-1">Calculating confidence intervals on the mean with the Students-t distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/rational.html" title="Polynomial and Rational Function Evaluation"><span class="index-entry-level-1">Polynomial and Rational Function Evaluation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Template Class octonion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">unreal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Template Class quaternion</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">quaternion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">unreal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">value_type</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">test</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/error_test.html" title="Relative Error and Testing"><span class="index-entry-level-1">Relative Error and Testing</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">Some Miscellaneous Examples of the Normal (Gaussian) Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">test_data</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions"><span class="index-entry-level-1">Changing the Policy on an Ad Hoc Basis for the Special Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_a_" title="Table 3.6. Errors In the Function tgamma(a,z)"><span class="index-entry-level-1">Errors In the Function tgamma(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/lgamma.html" title="Log Gamma"><span class="index-entry-level-1">Log Gamma</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">Setting Polices at Namespace Scope</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma1pm1</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/tgamma.html" title="Gamma"><span class="index-entry-level-1">Gamma</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgammaf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgammal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_delta_ratio</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_de" title="Table 3.1. Errors In the Function tgamma_delta_ratio(a, delta)"><span class="index-entry-level-1">Errors In the Function tgamma_delta_ratio(a, delta)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">Ratios of Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_lower</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html#math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_lo" title="Table 3.5. Errors In the Function tgamma_lower(a,z)"><span class="index-entry-level-1">Errors In the Function tgamma_lower(a,z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/igamma.html" title="Incomplete Gamma Functions"><span class="index-entry-level-1">Incomplete Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tgamma_ratio</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ra" title="Table 3.2. Errors In the Function tgamma_ratio(a, b)"><span class="index-entry-level-1">Errors In the Function tgamma_ratio(a, b)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions"><span class="index-entry-level-1">Ratios of Gamma Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">To Do</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/todo.html" title="To Do"><span class="index-entry-level-1">expression</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">tol</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">TR1 C Functions Quick Reference</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">assoc_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">beta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">betaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">betal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">comp_ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">conf_hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">conf_hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">conf_hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_i</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_if</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_il</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_j</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_jf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_jl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_k</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_kf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_bessel_kl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">cyl_neumannl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_1</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_1f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_1l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_2</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_2f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_2l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_3</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_3f</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">ellint_3l</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">expint</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">expintf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">expintl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hermite</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hermitef</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hermitel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hyperg</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hypergf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">hypergl</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">laguerre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">laguerref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">laguerrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">riemann_zeta</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">riemann_zetaf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">riemann_zetal</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_bessel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_besself</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_bessell</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_legendre</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_legendref</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_legendrel</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_neumann</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_neumannf</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">sph_neumannl</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">triangular</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Triangular Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">c</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">mode</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">quantile</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">skewness</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">triangular</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">triangular_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">triangular_distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/implementation0.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">trunc</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/concepts.html" title="Conceptual Requirements for Real Number Types"><span class="index-entry-level-1">Conceptual Requirements for Real Number Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">Truncation Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Truncation Functions</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">itrunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">lltrunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">ltrunc</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/rounding/trunc.html" title="Truncation Functions"><span class="index-entry-level-1">trunc</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">truncf</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">truncl</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tr1_0.html" title="C99 and TR1 C Functions Overview"><span class="index-entry-level-1">C99 and TR1 C Functions Overview</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_116"></a><span class="term">U</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">underflow_error_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference"><span class="index-entry-level-1">Policy Class Reference</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">uniform</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Uniform Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">uniform</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">uniform_distribution</span></a></strong></span></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">variance</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-0">uniform_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">unreal</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun0.html" title="Octonion Member Functions"><span class="index-entry-level-1">Octonion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_fun.html" title="Quaternion Member Functions"><span class="index-entry-level-1">Quaternion Member Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/synopsis.html" title="Synopsis"><span class="index-entry-level-1">Synopsis</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">upper_incomplete_gamma_fract</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Use in non-template code</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/non_templ.html" title="Use in non-template code"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Use in template code</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">expression</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Use With User-Defined Types</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">construction_traits</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">get</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_denorm_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_domain_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_evaluation_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_indeterminate_result_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_overflow_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/powers/ct_pow.html" title="Compile Time Power of a Runtime Base"><span class="index-entry-level-1">Compile Time Power of a Runtime Base</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_pole_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_rounding_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">user_underflow_error</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers"><span class="index-entry-level-1">Calling User Defined Error Handlers</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/error_handling_policies.html" title="Error Handling Policies"><span class="index-entry-level-1">Error Handling Policies</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using Boost.Math with High-Precision Floating-Point Libraries</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using Boost.Multiprecision</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_multiprecision.html" title="Using Boost.Multiprecision"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using e_float Library</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">e_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using Macros to Change the Policy Defaults</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_DENORM_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_DIGITS10_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_DOMAIN_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_EVALUATION_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_OVERFLOW_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_POLE_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_PROMOTE_FLOAT_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_ROUNDING_ERROR_POLICY</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_UNDERFLOW_ERROR_POLICY</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using NTL Library</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_ntl.html" title="Using NTL Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using with GCC's __float128 datatype</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/float128.html" title="Using with GCC's __float128 datatype"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using With MPFR or GMP - High-Precision Floating-Point Library</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using without expression templates for Boost.Test and others</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/high_precision/using_test.html" title="Using without expression templates for Boost.Test and others"><span class="index-entry-level-1">expression</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_117"></a><span class="term">V</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float/float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance"><span class="index-entry-level-1">Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">value_type</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-1">Bernoulli Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution"><span class="index-entry-level-1">Cauchy-Lorentz Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-1">Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/exp_dist.html" title="Exponential Distribution"><span class="index-entry-level-1">Exponential Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution"><span class="index-entry-level-1">Hypergeometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution"><span class="index-entry-level-1">Inverse Gaussian (or Inverse Normal) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/laplace_dist.html" title="Laplace Distribution"><span class="index-entry-level-1">Laplace Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_beta_dist.html" title="Noncentral Beta Distribution"><span class="index-entry-level-1">Noncentral Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution"><span class="index-entry-level-1">Noncentral F Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution"><span class="index-entry-level-1">Noncentral T Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution"><span class="index-entry-level-1">Normal (Gaussian) Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_typedefs.html" title="Octonion Member Typedefs"><span class="index-entry-level-1">Octonion Member Typedefs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_specialization.html" title="Octonion Specializations"><span class="index-entry-level-1">Octonion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/pareto.html" title="Pareto Distribution"><span class="index-entry-level-1">Pareto Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/poisson_dist.html" title="Poisson Distribution"><span class="index-entry-level-1">Poisson Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/polynomials.html" title="Polynomials"><span class="index-entry-level-1">Polynomials</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/mem_typedef.html" title="Quaternion Member Typedefs"><span class="index-entry-level-1">Quaternion Member Typedefs</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/spec.html" title="Quaternion Specializations"><span class="index-entry-level-1">Quaternion Specializations</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/rayleigh.html" title="Rayleigh Distribution"><span class="index-entry-level-1">Rayleigh Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution"><span class="index-entry-level-1">Skew Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-1">Students t Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/octonion.html" title="Template Class octonion"><span class="index-entry-level-1">Template Class octonion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat.html" title="Template Class quaternion"><span class="index-entry-level-1">Template Class quaternion</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">variance</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation"><span class="index-entry-level-1">Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">Inverse Chi-Squared Distribution Bayes Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_gamma_dist.html" title="Inverse Gamma Distribution"><span class="index-entry-level-1">Inverse Gamma Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution"><span class="index-entry-level-1">Log Normal Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/logistic_dist.html" title="Logistic Distribution"><span class="index-entry-level-1">Logistic Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/nmp.html" title="Non-Member Properties"><span class="index-entry-level-1">Non-Member Properties</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
+</ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_118"></a><span class="term">W</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">weibull</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Weibull Distribution</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">policy_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">scale</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">shape</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">value_type</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">weibull</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">weibull_distribution</span></a></strong></span></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-0">weibull_distribution</span></a></p></li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">write_code</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">write_csv</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li></ul></div>
+</li>
+</ul></div></dd>
+<dt>
+<a name="idx_id_119"></a><span class="term">Z</span>
+</dt>
+<dd><div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">zeta</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html#math_toolkit.zetas.zeta.errors_in_the_function_zeta_z" title="Table 3.30. Errors In the Function zeta(z)"><span class="index-entry-level-1">Errors In the Function zeta(z)</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/zetas/zeta.html" title="Riemann Zeta Function"><span class="index-entry-level-1">Riemann Zeta Function</span></a></p></li>
+</ul></div>
+</li></ul></div></dd>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="s04.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../indexes.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/inverse_complex.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/inverse_complex.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 7. Complex Number Functions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/FAQ.html" title="FAQs">
+<link rel="next" href="math_toolkit/implementation.html" title="Implementation and Accuracy">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/FAQ.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/implementation.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="inverse_complex"></a>Chapter 7. Complex Number Functions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Implementation and Accuracy</span></dt>
+<dt><span class="section">asin</span></dt>
+<dt><span class="section">acos</span></dt>
+<dt><span class="section">atan</span></dt>
+<dt><span class="section">asinh</span></dt>
+<dt><span class="section">acosh</span></dt>
+<dt><span class="section">atanh</span></dt>
+<dt><span class="section">History</span></dt>
+</dl>
+</div>
+<p>
+    The following complex number algorithms are the inverses of trigonometric functions
+    currently present in the C++ standard. Equivalents to these functions are part
+    of the C99 standard, and are part of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+    Report on C++ Library Extensions</a>.
+  </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/FAQ.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/implementation.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/acknowledgement.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/acknowledgement.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="exp.html" title="The Quaternionic Exponential">
+<link rel="next" href="history.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="exp.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_acknowledgement">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.acknowledgement"></a><a class="link" href="acknowledgement.html" title="Acknowledgements">Acknowledgements</a>
+</h2></div></div></div>
+<p>
+      The mathematical text has been typeset with <a href="http://www.nisus-soft.com/" target="_top">Nisus
+      Writer</a>. Jens Maurer has helped with portability and standard adherence,
+      and was the Review Manager for this library. More acknowledgements in the History
+      section. Thank you to all who contributed to the discution about this library.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="exp.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/acknowledgements.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/acknowledgements.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="tests0.html" title="Test Program">
+<link rel="next" href="history0.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tests0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_acknowledgements">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
+</h2></div></div></div>
+<p>
+      The mathematical text has been typeset with <a href="http://www.nisus-soft.com/" target="_top">Nisus
+      Writer</a>. Jens Maurer has helped with portability and standard adherence,
+      and was the Review Manager for this library. More acknowledgements in the History
+      section. Thank you to all who contributed to the discussion about this library.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tests0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/acos.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/acos.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>acos</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="asin.html" title="asin">
+<link rel="next" href="atan.html" title="atan">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="asin.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="atan.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_acos">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.acos"></a><a class="link" href="acos.html" title="acos">acos</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.acos.h0"></a>
+      <span class="phrase"><a name="math_toolkit.acos.header"></a></span><a class="link" href="acos.html#math_toolkit.acos.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acos</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.acos.h1"></a>
+      <span class="phrase"><a name="math_toolkit.acos.synopsis"></a></span><a class="link" href="acos.html#math_toolkit.acos.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">acos</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse cosine of the
+      complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/acos.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="asin.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="atan.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/acosh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/acosh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>acosh</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="asinh.html" title="asinh">
+<link rel="next" href="atanh.html" title="atanh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="asinh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="atanh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_acosh">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.acosh"></a><a class="link" href="acosh.html" title="acosh">acosh</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.acosh.h0"></a>
+      <span class="phrase"><a name="math_toolkit.acosh.header"></a></span><a class="link" href="acosh.html#math_toolkit.acosh.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.acosh.h1"></a>
+      <span class="phrase"><a name="math_toolkit.acosh.synopsis"></a></span><a class="link" href="acosh.html#math_toolkit.acosh.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic cosine
+      of the complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/acosh.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="asinh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="atanh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/airy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/airy.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Airy Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="hankel/sph_hankel.html" title="Spherical Hankel Functions">
+<link rel="next" href="airy/ai.html" title="Airy Ai Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="hankel/sph_hankel.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="airy/ai.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_airy">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.airy"></a><a class="link" href="airy.html" title="Airy Functions">Airy Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Airy Ai Function</span></dt>
+<dt><span class="section">Airy Bi Function</span></dt>
+<dt><span class="section">Airy Ai' Function</span></dt>
+<dt><span class="section">Airy Bi' Function</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hankel/sph_hankel.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="airy/ai.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/airy/ai.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/airy/ai.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Airy Ai Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../airy.html" title="Airy Functions">
+<link rel="prev" href="../airy.html" title="Airy Functions">
+<link rel="next" href="bi.html" title="Airy Bi Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../airy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_airy_ai">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.airy.ai"></a><a class="link" href="ai.html" title="Airy Ai Function">Airy Ai Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.airy.ai.h0"></a>
+        <span class="phrase"><a name="math_toolkit.airy.ai.synopsis"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_ai</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_ai</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.airy.ai.h1"></a>
+        <span class="phrase"><a name="math_toolkit.airy.ai.description"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.description">Description</a>
+      </h5>
+<p>
+        The function <a class="link" href="ai.html" title="Airy Ai Function">airy_ai</a> calculates
+        the Airy function Ai which is the first solution to the differential equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy.png"></span>
+      </p>
+<p>
+        See Weisstein, Eric W. "Airy Functions." From MathWorld--A Wolfram
+        Web Resource. http://mathworld.wolfram.com/AiryFunctions.html;
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graph illustrates how this function changes as <span class="emphasis"><em>x</em></span>
+        changes: for negative <span class="emphasis"><em>x</em></span> the function is cyclic, while
+        for positive <span class="emphasis"><em>x</em></span> the value tends to zero:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/airy_ai.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.airy.ai.h2"></a>
+        <span class="phrase"><a name="math_toolkit.airy.ai.accuracy"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.accuracy">Accuracy</a>
+      </h5>
+<p>
+        This function is implemented entirely in terms of the Bessel functions <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and <a class="link" href="../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a>
+        - refer to those functions for detailed accuracy information.
+      </p>
+<p>
+        In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
+        > 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
+        0</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.airy.ai.h3"></a>
+        <span class="phrase"><a name="math_toolkit.airy.ai.testing"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.testing">Testing</a>
+      </h5>
+<p>
+        Since this function is implemented in terms of other special functions, there
+        are only a few basic sanity checks, using test values from <a href="http://functions.wolfram.com/" target="_top">Wolfram
+        Airy Functions</a>.
+      </p>
+<h5>
+<a name="math_toolkit.airy.ai.h4"></a>
+        <span class="phrase"><a name="math_toolkit.airy.ai.implementation"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.implementation">Implementation</a>
+      </h5>
+<p>
+        This function is implemented in terms of the Bessel functions using the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy_ai.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../airy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/airy/aip.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/airy/aip.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Airy Ai' Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../airy.html" title="Airy Functions">
+<link rel="prev" href="bi.html" title="Airy Bi Function">
+<link rel="next" href="bip.html" title="Airy Bi' Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bip.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_airy_aip">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.airy.aip"></a><a class="link" href="aip.html" title="Airy Ai' Function">Airy Ai' Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.airy.aip.h0"></a>
+        <span class="phrase"><a name="math_toolkit.airy.aip.synopsis"></a></span><a class="link" href="aip.html#math_toolkit.airy.aip.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_ai_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_ai_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.airy.aip.h1"></a>
+        <span class="phrase"><a name="math_toolkit.airy.aip.description"></a></span><a class="link" href="aip.html#math_toolkit.airy.aip.description">Description</a>
+      </h5>
+<p>
+        The function <a class="link" href="aip.html" title="Airy Ai' Function">airy_ai_prime</a> calculates
+        the Airy function Ai' which is the derivative of the first solution to the
+        differential equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graph illustrates how this function changes as <span class="emphasis"><em>x</em></span>
+        changes: for negative <span class="emphasis"><em>x</em></span> the function is cyclic, while
+        for positive <span class="emphasis"><em>x</em></span> the value tends to zero:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/airy_aip.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.airy.aip.h2"></a>
+        <span class="phrase"><a name="math_toolkit.airy.aip.accuracy"></a></span><a class="link" href="aip.html#math_toolkit.airy.aip.accuracy">Accuracy</a>
+      </h5>
+<p>
+        This function is implemented entirely in terms of the Bessel functions <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and <a class="link" href="../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a>
+        - refer to those functions for detailed accuracy information.
+      </p>
+<p>
+        In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
+        > 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
+        0</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.airy.aip.h3"></a>
+        <span class="phrase"><a name="math_toolkit.airy.aip.testing"></a></span><a class="link" href="aip.html#math_toolkit.airy.aip.testing">Testing</a>
+      </h5>
+<p>
+        Since this function is implemented in terms of other special functions, there
+        are only a few basic sanity checks, using test values from functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.airy.aip.h4"></a>
+        <span class="phrase"><a name="math_toolkit.airy.aip.implementation"></a></span><a class="link" href="aip.html#math_toolkit.airy.aip.implementation">Implementation</a>
+      </h5>
+<p>
+        This function is implemented in terms of the Bessel functions using the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy_aip.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bip.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/airy/bi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/airy/bi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,108 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Airy Bi Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../airy.html" title="Airy Functions">
+<link rel="prev" href="ai.html" title="Airy Ai Function">
+<link rel="next" href="aip.html" title="Airy Ai' Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ai.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aip.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_airy_bi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.airy.bi"></a><a class="link" href="bi.html" title="Airy Bi Function">Airy Bi Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.airy.bi.h0"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bi.synopsis"></a></span><a class="link" href="bi.html#math_toolkit.airy.bi.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_bi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_bi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.airy.bi.h1"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bi.description"></a></span><a class="link" href="bi.html#math_toolkit.airy.bi.description">Description</a>
+      </h5>
+<p>
+        The function <a class="link" href="bi.html" title="Airy Bi Function">airy_bi</a> calculates
+        the Airy function Bi which is the second solution to the differential equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graph illustrates how this function changes as <span class="emphasis"><em>x</em></span>
+        changes: for negative <span class="emphasis"><em>x</em></span> the function is cyclic, while
+        for positive <span class="emphasis"><em>x</em></span> the value tends to infinity:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/airy_bi.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.airy.bi.h2"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bi.accuracy"></a></span><a class="link" href="bi.html#math_toolkit.airy.bi.accuracy">Accuracy</a>
+      </h5>
+<p>
+        This function is implemented entirely in terms of the Bessel functions <a class="link" href="../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> and <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        - refer to those functions for detailed accuracy information.
+      </p>
+<p>
+        In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
+        > 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
+        0</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.airy.bi.h3"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bi.testing"></a></span><a class="link" href="bi.html#math_toolkit.airy.bi.testing">Testing</a>
+      </h5>
+<p>
+        Since this function is implemented in terms of other special functions, there
+        are only a few basic sanity checks, using test values from functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.airy.bi.h4"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bi.implementation"></a></span><a class="link" href="bi.html#math_toolkit.airy.bi.implementation">Implementation</a>
+      </h5>
+<p>
+        This function is implemented in terms of the Bessel functions using the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy_bi.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ai.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aip.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/airy/bip.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/airy/bip.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,109 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Airy Bi' Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../airy.html" title="Airy Functions">
+<link rel="prev" href="aip.html" title="Airy Ai' Function">
+<link rel="next" href="../ellint.html" title="Elliptic Integrals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="aip.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../ellint.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_airy_bip">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.airy.bip"></a><a class="link" href="bip.html" title="Airy Bi' Function">Airy Bi' Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.airy.bip.h0"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bip.synopsis"></a></span><a class="link" href="bip.html#math_toolkit.airy.bip.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_bi_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">airy_bi_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.airy.bip.h1"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bip.description"></a></span><a class="link" href="bip.html#math_toolkit.airy.bip.description">Description</a>
+      </h5>
+<p>
+        The function <a class="link" href="bip.html" title="Airy Bi' Function">airy_bi_prime</a> calculates
+        the Airy function Bi' which is the derivative of the second solution to the
+        differential equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graph illustrates how this function changes as <span class="emphasis"><em>x</em></span>
+        changes: for negative <span class="emphasis"><em>x</em></span> the function is cyclic, while
+        for positive <span class="emphasis"><em>x</em></span> the value tends to infinity:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/airy_bi.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.airy.bip.h2"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bip.accuracy"></a></span><a class="link" href="bip.html#math_toolkit.airy.bip.accuracy">Accuracy</a>
+      </h5>
+<p>
+        This function is implemented entirely in terms of the Bessel functions <a class="link" href="../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> and <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        - refer to those functions for detailed accuracy information.
+      </p>
+<p>
+        In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
+        > 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
+        0</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.airy.bip.h3"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bip.testing"></a></span><a class="link" href="bip.html#math_toolkit.airy.bip.testing">Testing</a>
+      </h5>
+<p>
+        Since this function is implemented in terms of other special functions, there
+        are only a few basic sanity checks, using test values from functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.airy.bip.h4"></a>
+        <span class="phrase"><a name="math_toolkit.airy.bip.implementation"></a></span><a class="link" href="bip.html#math_toolkit.airy.bip.implementation">Implementation</a>
+      </h5>
+<p>
+        This function is implemented in terms of the Bessel functions using the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/airy_bip.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="aip.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../ellint.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/archetypes.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/archetypes.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,187 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Conceptual Archetypes for Reals and Distributions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+<link rel="prev" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">
+<link rel="next" href="../policy.html" title="Chapter 13. Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="dist_concept.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../policy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_archetypes">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.archetypes"></a><a class="link" href="archetypes.html" title="Conceptual Archetypes for Reals and Distributions">Conceptual Archetypes for Reals
+    and Distributions</a>
+</h2></div></div></div>
+<p>
+      There are a few concept archetypes available:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Real concept for floating-point types.
+        </li>
+<li class="listitem">
+          distribution Concept for statistical distributions.
+        </li>
+</ul></div>
+<h6>
+<a name="math_toolkit.archetypes.h0"></a>
+      <span class="phrase"><a name="math_toolkit.archetypes.real_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.archetypes.real_concept">Real
+      concept</a>
+    </h6>
+<p>
+      <code class="computeroutput"><span class="identifier">std_real_concept</span></code> is an archetype
+      for theReal types, including the built-in float, double, long double.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">std_real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">concepts</span>
+<span class="special">{</span>
+  <span class="keyword">class</span> <span class="identifier">std_real_concept</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      The main purpose in providing this type is to verify that standard library
+      functions are found via a using declaration - bringing those functions into
+      the current scope - and not just because they happen to be in global scope.
+    </p>
+<p>
+      In order to ensure that a call to say <code class="computeroutput"><span class="identifier">pow</span></code>
+      can be found either via argument dependent lookup, or failing that then in
+      the std namespace: all calls to standard library functions are unqualified,
+      with the std:: versions found via a <code class="computeroutput"><span class="keyword">using</span></code>
+      declaration to make them visible in the current scope. Unfortunately it's all
+      to easy to forget the <code class="computeroutput"><span class="keyword">using</span></code> declaration,
+      and call the double version of the function that happens to be in the global
+      scope by mistake.
+    </p>
+<p>
+      For example if the code calls ::pow rather than std::pow, the code will cleanly
+      compile, but truncation of long doubles to double will cause a significant
+      loss of precision. In contrast a template instantiated with std_real_concept
+      will <span class="bold"><strong>only</strong></span> compile if the all the standard
+      library functions used have been brought into the current scope with a using
+      declaration.
+    </p>
+<h3>
+<a name="math_toolkit.archetypes.h1"></a>
+      <span class="phrase"><a name="math_toolkit.archetypes.testing_the_real_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.archetypes.testing_the_real_concept">Testing
+      the real concept</a>
+    </h3>
+<p>
+      There is a test program libs/math/test/std_real_concept_check.cpp
+      that instantiates every template in this library with type <code class="computeroutput"><span class="identifier">std_real_concept</span></code>
+      to verify its usage of standard library functions.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">concepts</span><span class="special">{</span>
+
+<span class="keyword">class</span> <span class="identifier">real_concept</span><span class="special">;</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      <code class="computeroutput"><span class="identifier">real_concept</span></code> is an archetype
+      for <a class="link" href="concepts.html" title="Conceptual Requirements for Real Number Types">user defined real types</a>, it
+      declares its standard library functions in its own namespace: these will only
+      be found if they are called unqualified allowing argument dependent lookup
+      to locate them. In addition this type is useable at runtime: this allows code
+      that would not otherwise be exercised by the built-in floating point types
+      to be tested. There is no std::numeric_limits<> support for this type,
+      since numeric_limits is not a conceptual requirement for <a class="link" href="concepts.html" title="Conceptual Requirements for Real Number Types">RealType</a>s.
+    </p>
+<p>
+      NTL RR is an example of a type meeting the requirements that this type models,
+      but note that use of a thin wrapper class is required: refer to <a class="link" href="high_precision/use_ntl.html" title="Using NTL Library">"Using
+      With NTL - a High-Precision Floating-Point Library"</a>.
+    </p>
+<p>
+      There is no specific test case for type <code class="computeroutput"><span class="identifier">real_concept</span></code>,
+      instead, since this type is usable at runtime, each individual test case as
+      well as testing <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, also tests <code class="computeroutput"><span class="identifier">real_concept</span></code>.
+    </p>
+<h3>
+<a name="math_toolkit.archetypes.h2"></a>
+      <span class="phrase"><a name="math_toolkit.archetypes.distribution_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.archetypes.distribution_concept">Distribution
+      Concept</a>
+    </h3>
+<p>
+      Distribution Concept models statistical distributions.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">distribution</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">concepts</span>
+<span class="special">{</span>
+  <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+  <span class="keyword">class</span> <span class="identifier">distribution_archetype</span><span class="special">;</span>
+
+  <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">DistributionConcept</span><span class="special">;</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      The class template <code class="computeroutput"><span class="identifier">distribution_archetype</span></code>
+      is a model of the <a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Distribution concept</a>.
+    </p>
+<p>
+      The class template <code class="computeroutput"><span class="identifier">DistributionConcept</span></code>
+      is a <a href="../../../../../../libs/concept_check/index.html" target="_top">concept checking
+      class</a> for distribution types.
+    </p>
+<h3>
+<a name="math_toolkit.archetypes.h3"></a>
+      <span class="phrase"><a name="math_toolkit.archetypes.testing_the_distribution_concept"></a></span><a class="link" href="archetypes.html#math_toolkit.archetypes.testing_the_distribution_concept">Testing
+      the distribution concept</a>
+    </h3>
+<p>
+      The test program distribution_concept_check.cpp
+      is responsible for using <code class="computeroutput"><span class="identifier">DistributionConcept</span></code>
+      to verify that all the distributions in this library conform to the <a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Distribution
+      concept</a>.
+    </p>
+<p>
+      The class template <code class="computeroutput"><span class="identifier">DistributionConcept</span></code>
+      verifies the existence (but not proper function) of the non-member accessors
+      required by the <a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Distribution concept</a>.
+      These are checked by calls like
+    </p>
+<p>
+      v = pdf(dist, x); // (Result v is ignored).
+    </p>
+<p>
+      And in addition, those that accept two arguments do the right thing when the
+      arguments are of different types (the result type is always the same as the
+      distribution's value_type). (This is implemented by some additional forwarding-functions
+      in derived_accessors.hpp, so that there is no need for any code changes. Likewise
+      boilerplate versions of the hazard/chf/coefficient_of_variation functions are
+      implemented in there too.)
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dist_concept.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../policy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/asin.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/asin.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>asin</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="implementation.html" title="Implementation and Accuracy">
+<link rel="next" href="acos.html" title="acos">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="implementation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acos.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_asin">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.asin"></a><a class="link" href="asin.html" title="asin">asin</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.asin.h0"></a>
+      <span class="phrase"><a name="math_toolkit.asin.header"></a></span><a class="link" href="asin.html#math_toolkit.asin.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asin</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.asin.h1"></a>
+      <span class="phrase"><a name="math_toolkit.asin.synopsis"></a></span><a class="link" href="asin.html#math_toolkit.asin.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">asin</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse sine of the
+      complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/asin.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="implementation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acos.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/asinh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/asinh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>asinh</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="atan.html" title="atan">
+<link rel="next" href="acosh.html" title="acosh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="atan.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acosh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_asinh">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.asinh"></a><a class="link" href="asinh.html" title="asinh">asinh</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.asinh.h0"></a>
+      <span class="phrase"><a name="math_toolkit.asinh.header"></a></span><a class="link" href="asinh.html#math_toolkit.asinh.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.asinh.h1"></a>
+      <span class="phrase"><a name="math_toolkit.asinh.synopsis"></a></span><a class="link" href="asinh.html#math_toolkit.asinh.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic sine
+      of the complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/asinh.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="atan.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acosh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/atan.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/atan.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>atan</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="acos.html" title="acos">
+<link rel="next" href="asinh.html" title="asinh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="acos.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="asinh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_atan">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.atan"></a><a class="link" href="atan.html" title="atan">atan</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.atan.h0"></a>
+      <span class="phrase"><a name="math_toolkit.atan.header"></a></span><a class="link" href="atan.html#math_toolkit.atan.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atan</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.atan.h1"></a>
+      <span class="phrase"><a name="math_toolkit.atan.synopsis"></a></span><a class="link" href="atan.html#math_toolkit.atan.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">atan</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse tangent of the
+      complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/atan.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acos.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="asinh.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/atanh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/atanh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>atanh</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="acosh.html" title="acosh">
+<link rel="next" href="history2.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="acosh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history2.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_atanh">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.atanh"></a><a class="link" href="atanh.html" title="atanh">atanh</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.atanh.h0"></a>
+      <span class="phrase"><a name="math_toolkit.atanh.header"></a></span><a class="link" href="atanh.html#math_toolkit.atanh.header">Header:</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.atanh.h1"></a>
+      <span class="phrase"><a name="math_toolkit.atanh.synopsis"></a></span><a class="link" href="atanh.html#math_toolkit.atanh.synopsis">Synopsis:</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic tangent
+      of the complex number z.
+    </p>
+<p>
+      <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../images/atanh.png"></span>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acosh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history2.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Bessel Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="sf_poly/sph_harm.html" title="Spherical Harmonics">
+<link rel="next" href="bessel/bessel_over.html" title="Bessel Function Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_poly/sph_harm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bessel/bessel_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.bessel"></a><a class="link" href="bessel.html" title="Bessel Functions">Bessel Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Bessel Function Overview</span></dt>
+<dt><span class="section"><a href="bessel/bessel.html">Bessel Functions of the First
+      and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="bessel/bessel0.html">Finding Zeros of Bessel
+      Functions of the First and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="bessel/mbessel.html">Modified Bessel Functions
+      of the First and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="bessel/sph_bessel.html">Spherical Bessel Functions
+      of the First and Second Kinds</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_poly/sph_harm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bessel/bessel_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,688 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Bessel Functions of the First and Second Kinds</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../bessel.html" title="Bessel Functions">
+<link rel="prev" href="bessel_over.html" title="Bessel Function Overview">
+<link rel="next" href="bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bessel_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bessel0.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel_bessel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.bessel.bessel"></a><a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">Bessel Functions of the First
+      and Second Kinds</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.bessel.bessel.h0"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel.synopsis"></a></span><a class="link" href="bessel.html#math_toolkit.bessel.bessel.synopsis">Synopsis</a>
+      </h5>
+<p>
+        <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<h5>
+<a name="math_toolkit.bessel.bessel.h1"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel.description"></a></span><a class="link" href="bessel.html#math_toolkit.bessel.bessel.description">Description</a>
+      </h5>
+<p>
+        The functions <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        and <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a> return
+        the result of the Bessel functions of the first and second kinds respectively:
+      </p>
+<p>
+        cyl_bessel_j(v, x) = J<sub>v</sub>(x)
+      </p>
+<p>
+        cyl_neumann(v, x) = Y<sub>v</sub>(x) = N<sub>v</sub>(x)
+      </p>
+<p>
+        where:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel2.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel3.png"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+        The functions are also optimised for the relatively common case that T1 is
+        an integer.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The functions return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        whenever the result is undefined or complex. For <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        this occurs when <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span>
+        <span class="number">0</span></code> and v is not an integer, or when
+        <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span>
+        <span class="number">0</span></code> and <code class="computeroutput"><span class="identifier">v</span>
+        <span class="special">!=</span> <span class="number">0</span></code>.
+        For <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a> this occurs
+        when <code class="computeroutput"><span class="identifier">x</span> <span class="special"><=</span>
+        <span class="number">0</span></code>.
+      </p>
+<p>
+        The following graph illustrates the cyclic nature of J<sub>v</sub>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cyl_bessel_j.png" align="middle"></span>
+      </p>
+<p>
+        The following graph shows the behaviour of Y<sub>v</sub>: this is also cyclic for large
+        <span class="emphasis"><em>x</em></span>, but tends to -∞   for small <span class="emphasis"><em>x</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cyl_neumann.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel.h2"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel.testing"></a></span><a class="link" href="bessel.html#math_toolkit.bessel.bessel.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of test values: spot values calculated using functions.wolfram.com,
+        and a much larger set of tests computed using a simplified version of this
+        implementation (with all the special case handling removed).
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel.h3"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel.accuracy"></a></span><a class="link" href="bessel.html#math_toolkit.bessel.bessel.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following tables show how the accuracy of these functions varies on various
+        platforms, along with comparisons to the GSL-1.9
+        and Cephes libraries.
+        Note that the cyclic nature of these functions means that they have an infinite
+        number of irrational roots: in general these functions have arbitrarily large
+        <span class="emphasis"><em>relative</em></span> errors when the arguments are sufficiently
+        close to a root. Of course the absolute error in such cases is always small.
+        Note that only results for the widest floating-point type on the system are
+        given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.bessel.bessel.errors_rates_in_cyl_bessel_j"></a><p class="title"><b>Table 3.21. Errors Rates in cyl_bessel_j</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_j">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  J<sub>0</sub>   and J<sub>1</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  J<sub>v</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  J<sub>v</sub>   (large values of x > 1000)
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.5 Mean=1.1
+                </p>
+                <p>
+                  GSL Peak=6.6
+                </p>
+                <p>
+                  Cephes Peak=2.5
+                  Mean=1.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11 Mean=2.2
+                </p>
+                <p>
+                  GSL Peak=11
+                </p>
+                <p>
+                  Cephes Peak=17
+                  Mean=2.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=59 Mean=10
+                </p>
+                <p>
+                  GSL Peak=6x10<sup>11</sup>
+                </p>
+                <p>
+                  Cephes Peak=2x10<sup>5</sup>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64 / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=7 Mean=3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=117 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2x10<sup>4</sup>   Mean=6x10<sup>3</sup>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux AMD64 / G++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=7 Mean=3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=400 Mean=40
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2x10<sup>4</sup>   Mean=1x10<sup>4</sup>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=14 Mean=6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=29 Mean=3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2700 Mean=450
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.bessel.bessel.errors_rates_in_cyl_neumann"></a><p class="title"><b>Table 3.22. Errors Rates in cyl_neumann</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in cyl_neumann">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Y<sub>0</sub>   and Y<sub>1</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  Y<sub>n</sub> (integer orders)
+                </p>
+              </th>
+<th>
+                <p>
+                  Y<sub>v</sub> (fractional orders)
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.7 Mean=1.7
+                </p>
+                <p>
+                  GSL Peak=34 Mean=9
+                </p>
+                <p>
+                  Cephes Peak=330
+                  Mean=54
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=117 Mean=10
+                </p>
+                <p>
+                  GSL Peak=500 Mean=54
+                </p>
+                <p>
+                  Cephes Peak=923
+                  Mean=83
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=800 Mean=40
+                </p>
+                <p>
+                  GSL Peak=1.4x10<sup>6</sup>   Mean=7x10<sup>4</sup>  
+                </p>
+                <p>
+                  Cephes Peak=+INF
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64 / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=470 Mean=56
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=843 Mean=51
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=741 Mean=51
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux AMD64 / G++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1300 Mean=424
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2x10<sup>4</sup>   Mean=8x10<sup>3</sup>
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1x10<sup>5</sup>   Mean=6x10<sup>3</sup>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=180 Mean=63
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=340 Mean=150
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2x10<sup>4</sup>   Mean=1200
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that for large <span class="emphasis"><em>x</em></span> these functions are largely dependent
+        on the accuracy of the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">sin</span></code> and
+        <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cos</span></code> functions.
+      </p>
+<p>
+        Comparison to GSL and Cephes
+        is interesting: both Cephes
+        and this library optimise the integer order case - leading to identical results
+        - simply using the general case is for the most part slightly more accurate
+        though, as noted by the better accuracy of GSL in the integer argument cases.
+        This implementation tends to perform much better when the arguments become
+        large, Cephes in particular
+        produces some remarkably inaccurate results with some of the test data (no
+        significant figures correct), and even GSL performs badly with some inputs
+        to J<sub>v</sub>. Note that by way of double-checking these results, the worst performing
+        Cephes and GSL cases were
+        recomputed using functions.wolfram.com,
+        and the result checked against our test data: no errors in the test data
+        were found.
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel.h4"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel.implementation"></a></span><a class="link" href="bessel.html#math_toolkit.bessel.bessel.implementation">Implementation</a>
+      </h5>
+<p>
+        The implementation is mostly about filtering off various special cases:
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is negative, then the order <span class="emphasis"><em>v</em></span>
+        must be an integer or the result is a domain error. If the order is an integer
+        then the function is odd for odd orders and even for even orders, so we reflect
+        to <span class="emphasis"><em>x > 0</em></span>.
+      </p>
+<p>
+        When the order <span class="emphasis"><em>v</em></span> is negative then the reflection formulae
+        can be used to move to <span class="emphasis"><em>v > 0</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel9.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel10.png"></span>
+      </p>
+<p>
+        Note that if the order is an integer, then these formulae reduce to:
+      </p>
+<p>
+        J<sub>-n</sub> = (-1)<sup>n</sup>J<sub>n</sub>
+      </p>
+<p>
+        Y<sub>-n</sub> = (-1)<sup>n</sup>Y<sub>n</sub>
+      </p>
+<p>
+        However, in general, a negative order implies that we will need to compute
+        both J and Y.
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is large compared to the order <span class="emphasis"><em>v</em></span>
+        then the asymptotic expansions for large <span class="emphasis"><em>x</em></span> in M. Abramowitz
+        and I.A. Stegun, <span class="emphasis"><em>Handbook of Mathematical Functions</em></span>
+        9.2.19 are used (these were found to be more reliable than those in A&S
+        9.2.5).
+      </p>
+<p>
+        When the order <span class="emphasis"><em>v</em></span> is an integer the method first relates
+        the result to J<sub>0</sub>, J<sub>1</sub>, Y<sub>0</sub>   and Y<sub>1</sub>   using either forwards or backwards recurrence
+        (Miller's algorithm) depending upon which is stable. The values for J<sub>0</sub>, J<sub>1</sub>,
+        Y<sub>0</sub>   and Y<sub>1</sub>   are calculated using the rational minimax approximations on root-bracketing
+        intervals for small <span class="emphasis"><em>|x|</em></span> and Hankel asymptotic expansion
+        for large <span class="emphasis"><em>|x|</em></span>. The coefficients are from:
+      </p>
+<p>
+        W.J. Cody, <span class="emphasis"><em>ALGORITHM 715: SPECFUN - A Portable FORTRAN Package
+        of Special Function Routines and Test Drivers</em></span>, ACM Transactions
+        on Mathematical Software, vol 19, 22 (1993).
+      </p>
+<p>
+        and
+      </p>
+<p>
+        J.F. Hart et al, <span class="emphasis"><em>Computer Approximations</em></span>, John Wiley
+        & Sons, New York, 1968.
+      </p>
+<p>
+        These approximations are accurate to around 19 decimal digits: therefore
+        these methods are not used when type T has more than 64 binary digits.
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is smaller than machine epsilon then the following
+        approximations for Y<sub>0</sub>(x), Y<sub>1</sub>(x), Y<sub>2</sub>(x) and Y<sub>n</sub>(x) can be used (see: http://functions.wolfram.com/03.03.06.0037.01,
+        http://functions.wolfram.com/03.03.06.0038.01,
+        http://functions.wolfram.com/03.03.06.0039.01
+        and http://functions.wolfram.com/03.03.06.0040.01):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel_y0_small_z.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel_y1_small_z.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel_y2_small_z.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel_yn_small_z.png"></span>
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is small compared to <span class="emphasis"><em>v</em></span> and
+        <span class="emphasis"><em>v</em></span> is not an integer, then the following series approximation
+        can be used for Y<sub>v</sub>(x), this is also an area where other approximations are
+        often too slow to converge to be used (see http://functions.wolfram.com/03.03.06.0034.01):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel_yv_small_z.png"></span>
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is small compared to <span class="emphasis"><em>v</em></span>,
+        J<sub>v</sub>x   is best computed directly from the series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel2.png"></span>
+      </p>
+<p>
+        In the general case we compute J<sub>v</sub>   and Y<sub>v</sub>   simultaneously.
+      </p>
+<p>
+        To get the initial values, let μ   = ν - floor(ν + 1/2), then μ   is the fractional part
+        of ν   such that |μ| <= 1/2 (we need this for convergence later). The idea
+        is to calculate J<sub>μ</sub>(x), J<sub>μ+1</sub>(x), Y<sub>μ</sub>(x), Y<sub>μ+1</sub>(x) and use them to obtain J<sub>ν</sub>(x), Y<sub>ν</sub>(x).
+      </p>
+<p>
+        The algorithm is called Steed's method, which needs two continued fractions
+        as well as the Wronskian:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel8.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel11.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel12.png"></span>
+      </p>
+<p>
+        See: F.S. Acton, <span class="emphasis"><em>Numerical Methods that Work</em></span>, The Mathematical
+        Association of America, Washington, 1997.
+      </p>
+<p>
+        The continued fractions are computed using the modified Lentz's method (W.J.
+        Lentz, <span class="emphasis"><em>Generating Bessel functions in Mie scattering calculations
+        using continued fractions</em></span>, Applied Optics, vol 15, 668 (1976)).
+        Their convergence rates depend on <span class="emphasis"><em>x</em></span>, therefore we need
+        different strategies for large <span class="emphasis"><em>x</em></span> and small <span class="emphasis"><em>x</em></span>.
+      </p>
+<p>
+        <span class="emphasis"><em>x > v</em></span>, CF1 needs O(<span class="emphasis"><em>x</em></span>) iterations
+        to converge, CF2 converges rapidly
+      </p>
+<p>
+        <span class="emphasis"><em>x <= v</em></span>, CF1 converges rapidly, CF2 fails to converge
+        when <span class="emphasis"><em>x</em></span> <code class="literal">-></code> 0
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is large (<span class="emphasis"><em>x</em></span> > 2), both
+        continued fractions converge (CF1 may be slow for really large <span class="emphasis"><em>x</em></span>).
+        J<sub>μ</sub>, J<sub>μ+1</sub>, Y<sub>μ</sub>, Y<sub>μ+1</sub> can be calculated by
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel13.png"></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel14.png"></span>
+      </p>
+<p>
+        J<sub>ν</sub> and Y<sub>μ</sub> are then calculated using backward (Miller's algorithm) and forward
+        recurrence respectively.
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is small (<span class="emphasis"><em>x</em></span> <= 2), CF2
+        convergence may fail (but CF1 works very well). The solution here is Temme's
+        series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel15.png"></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel16.png"></span>
+      </p>
+<p>
+        g<sub>k</sub>   and h<sub>k</sub>  
+are also computed by recursions (involving gamma functions), but
+        the formulas are a little complicated, readers are refered to N.M. Temme,
+        <span class="emphasis"><em>On the numerical evaluation of the ordinary Bessel function of
+        the second kind</em></span>, Journal of Computational Physics, vol 21, 343
+        (1976). Note Temme's series converge only for |μ| <= 1/2.
+      </p>
+<p>
+        As the previous case, Y<sub>ν</sub>   is calculated from the forward recurrence, so is Y<sub>ν+1</sub>.
+        With these two values and f<sub>ν</sub>, the Wronskian yields J<sub>ν</sub>(x) directly without backward
+        recurrence.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bessel_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bessel0.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,754 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Finding Zeros of Bessel Functions of the First and Second Kinds</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../bessel.html" title="Bessel Functions">
+<link rel="prev" href="bessel.html" title="Bessel Functions of the First and Second Kinds">
+<link rel="next" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="mbessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel_bessel0">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.bessel.bessel0"></a><a class="link" href="bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds">Finding Zeros of Bessel
+      Functions of the First and Second Kinds</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.bessel.bessel0.h0"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.synopsis"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.synopsis">Synopsis</a>
+      </h5>
+<p>
+        <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+      </p>
+<p>
+        Functions for obtaining both a single zero or root of the Bessel function,
+        and placing multiple zeros into a container like <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>
+        by providing an output iterator.
+      </p>
+<p>
+        The signature of the single value functions are:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span>
+         <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>            <span class="comment">// Floating-point value for Jv.</span>
+         <span class="keyword">int</span> <span class="identifier">m</span><span class="special">);</span>         <span class="comment">// 1-based index of zero.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span>
+         <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>            <span class="comment">// Floating-point value for Jv.</span>
+         <span class="keyword">int</span> <span class="identifier">m</span><span class="special">);</span>         <span class="comment">// 1-based index of zero.</span>
+</pre>
+<p>
+        and for multiple zeros:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">></span>
+<span class="identifier">OutputIterator</span> <span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span>
+                     <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>                       <span class="comment">// Floating-point value for Jv.</span>
+                     <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span>           <span class="comment">// 1-based index of first zero.</span>
+                     <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>  <span class="comment">// How many zeros to generate.</span>
+                     <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span>    <span class="comment">// Destination for zeros.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">></span>
+<span class="identifier">OutputIterator</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span>
+                     <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>                       <span class="comment">// Floating-point value for Jv.</span>
+                     <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span>           <span class="comment">// 1-based index of zero.</span>
+                     <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>  <span class="comment">// How many zeros to generate</span>
+                     <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span>    <span class="comment">// Destination for zeros.</span>
+</pre>
+<p>
+        There are also versions which allow control of the <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policies</a>
+        for error handling and precision.
+      </p>
+<pre class="programlisting"> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <span class="identifier">T</span> <span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span>
+          <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>            <span class="comment">// Floating-point value for Jv.</span>
+          <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span>          <span class="comment">// 1-based index of zero.</span>
+          <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span> <span class="comment">// Policy to use.</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+ <span class="identifier">T</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span>
+          <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>            <span class="comment">// Floating-point value for Jv.</span>
+          <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span>          <span class="comment">// 1-based index of zero.</span>
+          <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span> <span class="comment">// Policy to use.</span>
+
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">></span>
+<span class="identifier">OutputIterator</span> <span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span>
+                     <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>                       <span class="comment">// Floating-point value for Jv.</span>
+                     <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span>           <span class="comment">// 1-based index of first zero.</span>
+                     <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>  <span class="comment">// How many zeros to generate.</span>
+                     <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">,</span>     <span class="comment">// Destination for zeros.</span>
+                     <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>        <span class="comment">// Policy to use.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">></span>
+<span class="identifier">OutputIterator</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span>
+                     <span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span>                       <span class="comment">// Floating-point value for Jv.</span>
+                     <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span>           <span class="comment">// 1-based index of zero.</span>
+                     <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>  <span class="comment">// How many zeros to generate.</span>
+                     <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">,</span>     <span class="comment">// Destination for zeros.</span>
+                     <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>        <span class="comment">// Policy to use.</span>
+</pre>
+<h5>
+<a name="math_toolkit.bessel.bessel0.h1"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.description"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.description">Description</a>
+      </h5>
+<p>
+        Every real order ν cylindrical Bessel and Neumann functions have an infinite
+        number of zeros on the positive real axis. The real zeros on the positive
+        real axis can be found by solving for the roots of
+      </p>
+<p>
+          <span class="emphasis"><em>J<sub>ν</sub>(j<sub>ν, m</sub>) = 0</em></span>
+      </p>
+<p>
+          <span class="emphasis"><em>Y<sub>ν</sub>(y<sub>ν, m</sub>) = 0</em></span>
+      </p>
+<p>
+        Here, <span class="emphasis"><em>j<sub>ν, m</sub></em></span> represents the <span class="emphasis"><em>m<sup>th</sup></em></span> root
+        of the cylindrical Bessel function of order <span class="emphasis"><em>ν</em></span>, and <span class="emphasis"><em>y<sub>ν,
+        m</sub></em></span> represents the <span class="emphasis"><em>m<sup>th</sup></em></span> root of the cylindrical
+        Neumann function of order <span class="emphasis"><em>ν</em></span>.
+      </p>
+<p>
+        The zeros or roots (values of <code class="computeroutput"><span class="identifier">x</span></code>
+        where the function crosses the horizontal <code class="computeroutput"><span class="identifier">y</span>
+        <span class="special">=</span> <span class="number">0</span></code>
+        axis) of the Bessel and Neumann functions are computed by two functions,
+        <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code> and <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span></code>.
+      </p>
+<p>
+        In each case the index or rank of the zero returned is 1-based, which is
+        to say:
+      </p>
+<pre class="programlisting"><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">v</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+        returns the first zero of Bessel J.
+      </p>
+<p>
+        Passing an <code class="computeroutput"><span class="identifier">start_index</span> <span class="special"><=</span>
+        <span class="number">0</span></code> results in a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+        being raised.
+      </p>
+<p>
+        For certain parameters, however, the zero'th root is defined and it has a
+        value of zero. For example, the zero'th root of <code class="computeroutput"><span class="identifier">J</span><span class="special">[</span><span class="identifier">sub</span> <span class="identifier">v</span><span class="special">](</span><span class="identifier">x</span><span class="special">)</span></code>
+        is defined and it has a value of zero for all values of <code class="computeroutput"><span class="identifier">v</span>
+        <span class="special">></span> <span class="number">0</span></code>
+        and for negative integer values of <code class="computeroutput"><span class="identifier">v</span>
+        <span class="special">=</span> <span class="special">-</span><span class="identifier">n</span></code>. Similar cases are described in the implementation
+        details below.
+      </p>
+<p>
+        The order <code class="computeroutput"><span class="identifier">v</span></code> of <code class="computeroutput"><span class="identifier">J</span></code> can be positive, negative and zero for
+        the <code class="computeroutput"><span class="identifier">cyl_bessel_j</span></code> and <code class="computeroutput"><span class="identifier">cyl_neumann</span></code> functions, but not infinite
+        nor NaN.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/bessel_j_zeros.png" align="middle"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/neumann_y_zeros.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel0.h2"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.examples_of_finding_bessel_and_n"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.examples_of_finding_bessel_and_n">Examples
+        of finding Bessel and Neumann zeros</a>
+      </h5>
+<p>
+        This example demonstrates calculating zeros of the Bessel and Neumann functions.
+        It also shows how Boost.Math and Boost.Multiprecision can be combined to
+        provide a many decimal digit precision. For 50 decimal digit precision we
+        need to include
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        and a <code class="computeroutput"><span class="keyword">typedef</span></code> for <code class="computeroutput"><span class="identifier">float_type</span></code> may be convenient (allowing
+        a quick switch to re-compute at built-in <code class="computeroutput"><span class="keyword">double</span></code>
+        or other precision)
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span> <span class="identifier">float_type</span><span class="special">;</span>
+</pre>
+<p>
+        To use the functions for finding zeros of the functions we need
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        This file includes the forward declaration signatures for the zero-finding
+        functions:
+      </p>
+<pre class="programlisting"><span class="comment">//  #include <boost/math/special_functions/math_fwd.hpp></span>
+</pre>
+<p>
+        but more details are in the full documentation, for example at <a href="http://www.boost.org/doc/libs/1_53_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html" target="_top">Boost.Math
+        Bessel functions</a>.
+      </p>
+<p>
+        This example shows obtaining both a single zero of the Bessel function, and
+        then placing multiple zeros into a container like <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>
+        by providing an iterator.
+      </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          It is always wise to place code using Boost.Math inside try'n'catch blocks;
+          this will ensure that helpful error messages are shown when exceptional
+          conditions arise.
+        </p></td></tr>
+</table></div>
+<p>
+        First, evaluate a single Bessel zero.
+      </p>
+<p>
+        The precision is controlled by the float-point type of template parameter
+        <code class="computeroutput"><span class="identifier">T</span></code> of <code class="computeroutput"><span class="identifier">v</span></code>
+        so this example has <code class="computeroutput"><span class="keyword">double</span></code> precision,
+        at least 15 but up to 17 decimal digits (for the common 64-bit double).
+      </p>
+<pre class="programlisting"><span class="comment">//    double root = boost::math::cyl_bessel_j_zero(0.0, 1);</span>
+<span class="comment">//    // Displaying with default precision of 6 decimal digits:</span>
+<span class="comment">//    std::cout << "boost::math::cyl_bessel_j_zero(0.0, 1) " << root << std::endl; // 2.40483</span>
+<span class="comment">//    // And with all the guaranteed (15) digits:</span>
+<span class="comment">//    std::cout.precision(std::numeric_limits<double>::digits10);</span>
+<span class="comment">//    std::cout << "boost::math::cyl_bessel_j_zero(0.0, 1) " << root << std::endl; // 2.40482555769577</span>
+</pre>
+<p>
+        But note that because the parameter <code class="computeroutput"><span class="identifier">v</span></code>
+        controls the precision of the result, <code class="computeroutput"><span class="identifier">v</span></code>
+        <span class="bold"><strong>must be a floating-point type</strong></span>. So if you
+        provide an integer type, say 0, rather than 0.0, then it will fail to compile
+        thus:
+      </p>
+<pre class="programlisting"><span class="identifier">root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+        with this error message
+      </p>
+<pre class="programlisting"><span class="identifier">error</span> <span class="identifier">C2338</span><span class="special">:</span> <span class="identifier">Order</span> <span class="identifier">must</span> <span class="identifier">be</span> <span class="identifier">a</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span><span class="special">.</span>
+</pre>
+<p>
+        Optionally, we can use a policy to ignore errors, C-style, returning some
+        value, perhaps infinity or NaN, or the best that can be done. (See <a class="link" href="../pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">user error handling</a>).
+      </p>
+<p>
+        To create a (possibly unwise!) policy <code class="computeroutput"><span class="identifier">ignore_all_policy</span></code>
+        that ignores all errors:
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">></span>
+            <span class="special">></span> <span class="identifier">ignore_all_policy</span><span class="special">;</span>
+</pre>
+<p>
+        Examples of use of this <code class="computeroutput"><span class="identifier">ignore_all_policy</span></code>
+        are
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">inf</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="keyword">double</span> <span class="identifier">nan</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+
+<span class="keyword">double</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(-</span><span class="number">1.0</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.0, 1) "</span> <span class="special"><<</span> <span class="identifier">dodgy_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#QNAN</span>
+<span class="keyword">double</span> <span class="identifier">inf_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">inf</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special"><<</span> <span class="identifier">inf_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#QNAN</span>
+<span class="keyword">double</span> <span class="identifier">nan_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">nan</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special"><<</span> <span class="identifier">nan_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#QNAN</span>
+</pre>
+<p>
+        Another version of <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>
+        allows calculation of multiple zeros with one call, placing the results in
+        a container, often <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>. For example, generate and display
+        the first five <code class="computeroutput"><span class="keyword">double</span></code> roots
+        of J<sub>v</sub> for integral order 2, as column <span class="emphasis"><em>J<sub>2</sub>(x)</em></span> in table
+        1 of <a href="http://mathworld.wolfram.com/BesselFunctionZeros.html" target="_top">Wolfram
+        Bessel Function Zeros</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">n_roots</span> <span class="special">=</span> <span class="number">5U</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">roots</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">n_roots</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">roots</span><span class="special">));</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span>
+          <span class="identifier">roots</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+          <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">"\n"</span><span class="special">));</span>
+</pre>
+<p>
+        Or we can use Boost.Multiprecision to generate 50 decimal digit roots of
+        <span class="emphasis"><em>J<sub>v</sub></em></span> for non-integral order <code class="computeroutput"><span class="identifier">v</span><span class="special">=</span> <span class="number">71</span><span class="special">/</span><span class="number">19</span> <span class="special">==</span> <span class="number">3.736842</span></code>,
+        expressed as an exact-integer fraction to generate the most accurate value
+        possible for all floating-point types.
+      </p>
+<p>
+        We set the precision of the output stream, and show trailing zeros to display
+        a fixed 50 decimal digits.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">float_type</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">);</span> <span class="comment">// 50 decimal digits.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Show trailing zeros.</span>
+
+<span class="identifier">float_type</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">float_type</span><span class="special">(</span><span class="number">71</span><span class="special">)</span> <span class="special">/</span> <span class="number">19</span><span class="special">;</span>
+<span class="identifier">float_type</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// 1st root.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"x = "</span> <span class="special"><<</span> <span class="identifier">x</span> <span class="special"><<</span> <span class="string">", r = "</span> <span class="special"><<</span> <span class="identifier">r</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">r</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">20U</span><span class="special">);</span> <span class="comment">// 20th root.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"x = "</span> <span class="special"><<</span> <span class="identifier">x</span> <span class="special"><<</span> <span class="string">", r = "</span> <span class="special"><<</span> <span class="identifier">r</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">float_type</span><span class="special">></span> <span class="identifier">zeros</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">zeros</span><span class="special">));</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cyl_bessel_j_zeros"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Print the roots to the output stream.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">zeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">zeros</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+          <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="identifier">float_type</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">"\n"</span><span class="special">));</span>
+</pre>
+<h6>
+<a name="math_toolkit.bessel.bessel0.h3"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.using_output_iterator_to_sum_zer"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.using_output_iterator_to_sum_zer">Using
+        Output Iterator to sum zeros of Bessel Functions</a>
+      </h6>
+<p>
+        This example demonstrates summing zeros of the Bessel functions. To use the
+        functions for finding zeros of the functions we need
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        We use the <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>
+        output iterator parameter <code class="computeroutput"><span class="identifier">out_it</span></code>
+        to create a sum of <span class="emphasis"><em>1/zeros<sup>2</sup></em></span> by defining a custom output
+        iterator:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">output_summation_iterator</span>
+<span class="special">{</span>
+   <span class="identifier">output_summation_iterator</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">p_sum</span><span class="special">(</span><span class="identifier">p</span><span class="special">)</span>
+   <span class="special">{}</span>
+   <span class="identifier">output_summation_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*()</span>
+   <span class="special">{</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+    <span class="identifier">output_summation_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++()</span>
+   <span class="special">{</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+   <span class="identifier">output_summation_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span>
+   <span class="special">{</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+   <span class="identifier">output_summation_iterator</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+   <span class="special">{</span>
+     <span class="special">*</span><span class="identifier">p_sum</span> <span class="special">+=</span> <span class="number">1.</span><span class="special">/</span> <span class="special">(</span><span class="identifier">val</span> <span class="special">*</span> <span class="identifier">val</span><span class="special">);</span> <span class="comment">// Summing 1/zero^2.</span>
+     <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>
+   <span class="special">}</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="identifier">T</span><span class="special">*</span> <span class="identifier">p_sum</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        The sum is calculated for many values, converging on the analytical exact
+        value of <code class="computeroutput"><span class="number">1</span><span class="special">/</span><span class="number">8</span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">nu</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">sum</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+<span class="identifier">output_summation_iterator</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">it</span><span class="special">(&</span><span class="identifier">sum</span><span class="special">);</span>  <span class="comment">// sum of 1/zeros^2</span>
+<span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">nu</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">10000</span><span class="special">,</span> <span class="identifier">it</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">s</span> <span class="special">=</span> <span class="number">1</span><span class="special">/(</span><span class="number">4</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">nu</span> <span class="special">+</span> <span class="number">1</span><span class="special">));</span> <span class="comment">// 0.125 = 1/8 is exact analytical solution.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="string">"nu = "</span> <span class="special"><<</span> <span class="identifier">nu</span> <span class="special"><<</span> <span class="string">", sum = "</span> <span class="special"><<</span> <span class="identifier">sum</span>
+  <span class="special"><<</span> <span class="string">", exact = "</span> <span class="special"><<</span> <span class="identifier">s</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// nu = 1.00000, sum = 0.124990, exact = 0.125000</span>
+</pre>
+<h6>
+<a name="math_toolkit.bessel.bessel0.h4"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.calculating_zeros_of_the_neumann"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.calculating_zeros_of_the_neumann">Calculating
+        zeros of the Neumann function.</a>
+      </h6>
+<p>
+        This example also shows how Boost.Math and Boost.Multiprecision can be combined
+        to provide a many decimal digit precision. For 50 decimal digit precision
+        we need to include
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        and a <code class="computeroutput"><span class="keyword">typedef</span></code> for <code class="computeroutput"><span class="identifier">float_type</span></code> may be convenient (allowing
+        a quick switch to re-compute at built-in <code class="computeroutput"><span class="keyword">double</span></code>
+        or other precision)
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span> <span class="identifier">float_type</span><span class="special">;</span>
+</pre>
+<p>
+        To use the functions for finding zeros of the <code class="computeroutput"><span class="identifier">cyl_neumann</span></code>
+        function we need:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        The Neumann (Bessel Y) function zeros are evaluated very similarly:
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_neumann_zero</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">zn</span> <span class="special">=</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="number">2.</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cyl_neumann_zero(2., 1) = "</span> <span class="special"><<</span> <span class="identifier">zn</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="identifier">nzeros</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> <span class="comment">// Space for 3 zeros.</span>
+<span class="identifier">cyl_neumann_zero</span><span class="special"><</span><span class="keyword">float</span><span class="special">>(</span><span class="number">2.F</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">size</span><span class="special">(),</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cyl_neumann_zero<float>(2.F, 1, "</span><span class="special">;</span>
+<span class="comment">// Print the zeros to the output stream.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+          <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">float</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">", "</span><span class="special">));</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="string">"cyl_neumann_zero(static_cast<float_type>(220)/100, 1) = "</span>
+  <span class="special"><<</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">float_type</span><span class="special">>(</span><span class="number">220</span><span class="special">)/</span><span class="number">100</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// 3.6154383428745996706772556069431792744372398748422</span>
+</pre>
+<h6>
+<a name="math_toolkit.bessel.bessel0.h5"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.error_messages_from_bad_input"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.error_messages_from_bad_input">Error
+        messages from 'bad' input</a>
+      </h6>
+<p>
+        Another example demonstrates calculating zeros of the Bessel functions showing
+        the error messages from 'bad' input is handled by throwing exceptions.
+      </p>
+<p>
+        To use the functions for finding zeros of the functions we need:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          It is always wise to place all code using Boost.Math inside try'n'catch
+          blocks; this will ensure that helpful error messages can be shown when
+          exceptional conditions arise.
+        </p></td></tr>
+</table></div>
+<p>
+        Examples below show messages from several 'bad' arguments that throw a <code class="computeroutput"><span class="identifier">domain_error</span></code> exception.
+      </p>
+<pre class="programlisting"><span class="keyword">try</span>
+<span class="special">{</span> <span class="comment">// Try a zero order v.</span>
+  <span class="keyword">float</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="number">0.F</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(0.F, 0) "</span> <span class="special"><<</span> <span class="identifier">dodgy_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+  <span class="comment">// Thrown exception Error in function boost::math::cyl_bessel_j_zero<double>(double, int):</span>
+  <span class="comment">// Requested the 0'th zero of J0, but the rank must be > 0 !</span>
+<span class="special">}</span>
+<span class="keyword">catch</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">ex</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Thrown exception "</span> <span class="special"><<</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          The type shown in the error message is the type <span class="bold"><strong>after
+          promotion</strong></span>, using <a class="link" href="../pol_ref/precision_pol.html" title="Precision Policies">precision
+          policy</a> and <a class="link" href="../pol_ref/internal_promotion.html" title="Internal Floating-point Promotion Policies">internal
+          promotion policy</a>, from <code class="computeroutput"><span class="keyword">float</span></code>
+          to <code class="computeroutput"><span class="keyword">double</span></code> in this case.
+        </p></td></tr>
+</table></div>
+<p>
+        In this example the promotion goes:
+      </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+            Arguments are <code class="computeroutput"><span class="keyword">float</span></code> and
+            <code class="computeroutput"><span class="keyword">int</span></code>.
+          </li>
+<li class="listitem">
+            Treat <code class="computeroutput"><span class="keyword">int</span></code> "as if"
+            it were a <code class="computeroutput"><span class="keyword">double</span></code>, so arguments
+            are <code class="computeroutput"><span class="keyword">float</span></code> and <code class="computeroutput"><span class="keyword">double</span></code>.
+          </li>
+<li class="listitem">
+            Common type is <code class="computeroutput"><span class="keyword">double</span></code> -
+            so that's the precision we want (and the type that will be returned).
+          </li>
+<li class="listitem">
+            Evaluate internally as <code class="computeroutput"><span class="keyword">double</span></code>
+            for full <code class="computeroutput"><span class="keyword">float</span></code> precision.
+          </li>
+</ol></div>
+<p>
+        See full code for other examples that promote from <code class="computeroutput"><span class="keyword">double</span></code>
+        to <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+      </p>
+<p>
+        Other examples of 'bad' inputs like infinity and NaN are below. Some compiler
+        warnings indicate that 'bad' values are detected at compile time.
+      </p>
+<pre class="programlisting"><span class="keyword">try</span>
+<span class="special">{</span> <span class="comment">// order v = inf</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="keyword">double</span> <span class="identifier">inf</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+   <span class="keyword">double</span> <span class="identifier">inf_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">inf</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special"><<</span> <span class="identifier">inf_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Throw exception Error in function boost::math::cyl_bessel_j_zero<long double>(long double, unsigned):</span>
+   <span class="comment">// Order argument is 1.#INF, but must be finite >= 0 !</span>
+<span class="special">}</span>
+<span class="keyword">catch</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">ex</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Thrown exception "</span> <span class="special"><<</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">try</span>
+<span class="special">{</span> <span class="comment">// order v = NaN, rank m = 1</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="keyword">double</span> <span class="identifier">nan</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+   <span class="keyword">double</span> <span class="identifier">nan_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">nan</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"boost::math::cyl_bessel_j_zero(nan, 1) "</span> <span class="special"><<</span> <span class="identifier">nan_root</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Throw exception Error in function boost::math::cyl_bessel_j_zero<long double>(long double, unsigned):</span>
+   <span class="comment">// Order argument is 1.#QNAN, but must be finite >= 0 !</span>
+<span class="special">}</span>
+<span class="keyword">catch</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">ex</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Thrown exception "</span> <span class="special"><<</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        The output from other examples are shown appended to the full code listing.
+      </p>
+<p>
+        The full code (and output) for these examples is at <a href="../../../../../example/bessel_zeros_example_1.cpp" target="_top">Bessel
+        zeros</a>, <a href="../../../../../example/bessel_zeros_interator_example.cpp" target="_top">Bessel
+        zeros iterator</a>, <a href="../../../../../example/neumann_zeros_example_1.cpp" target="_top">Neumann
+        zeros</a>, <a href="../../../../../example/bessel_errors_example.cpp" target="_top">Bessel
+        error messages</a>.
+      </p>
+<h4>
+<a name="math_toolkit.bessel.bessel0.h6"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.implementation"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.implementation">Implementation</a>
+      </h4>
+<p>
+        Various methods are used to compute initial estimates for <span class="emphasis"><em>j<sub>ν, m</sub></em></span>
+        and <span class="emphasis"><em>y<sub>ν, m</sub></em></span> ; these are described in detail below.
+      </p>
+<p>
+        After finding the initial estimate of a given root, its precision is subsequently
+        refined to the desired level using Newton-Raphson iteration from Boost.Math's
+        <a class="link" href="../internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder">root-finding with derivatives</a>
+        utilities combined with the functions <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        and <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>.
+      </p>
+<p>
+        Newton iteration requires both <span class="emphasis"><em>J<sub>ν</sub>(x)</em></span> or <span class="emphasis"><em>Y<sub>ν</sub>(x)</em></span>
+        as well as its derivative. The derivatives of <span class="emphasis"><em>J<sub>ν</sub>(x)</em></span> and
+        <span class="emphasis"><em>Y<sub>ν</sub>(x)</em></span> with respect to <span class="emphasis"><em>x</em></span> are given
+        by M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions, NBS
+        (1964). In particular,
+      </p>
+<p>
+          <span class="emphasis"><em>d/<sub>dx</sub> <span class="emphasis"><em>J<sub>ν</sub>(x)</em></span> = <span class="emphasis"><em>J<sub>ν-1</sub>(x)</em></span> - ν J<sub>ν</sub>(x)</em></span>
+        / x
+      </p>
+<p>
+          <span class="emphasis"><em>d/<sub>dx</sub> <span class="emphasis"><em>Y<sub>ν</sub>(x)</em></span> = <span class="emphasis"><em>Y<sub>ν-1</sub>(x)</em></span> - ν Y<sub>ν</sub>(x)</em></span>
+        / x
+      </p>
+<p>
+        Enumeration of the rank of a root (in other words the index of a root) begins
+        with one and counts up, in other words <span class="emphasis"><em>m,=1,2,3,…</em></span> The
+        value of the first root is always greater than zero.
+      </p>
+<p>
+        For certain special parameters, cylindrical Bessel functions and cylindrical
+        Neumann functions have a root at the origin. For example, <span class="emphasis"><em>J<sub>ν</sub>(x)</em></span>
+        has a root at the origin for every positive order <span class="emphasis"><em>ν > 0</em></span>,
+        and for every negative integer order <span class="emphasis"><em>ν = -n</em></span> with <span class="emphasis"><em>n
+        ∈ ℕ <sup>+</sup></em></span> and <span class="emphasis"><em>n ≠ 0</em></span>.
+      </p>
+<p>
+        In addition, <span class="emphasis"><em>Y<sub>ν</sub>(x)</em></span> has a root at the origin for every
+        negative half-integer order <span class="emphasis"><em>ν = -n/2</em></span>, with <span class="emphasis"><em>n
+        ∈ ℕ <sup>+</sup></em></span> and and <span class="emphasis"><em>n ≠ 0</em></span>.
+      </p>
+<p>
+        For these special parameter values, the origin with a value of <span class="emphasis"><em>x
+        = 0</em></span> is provided as the <span class="emphasis"><em>0<sup>th</sup></em></span> root generated
+        by <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span><span class="special">()</span></code>
+        and <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span><span class="special">()</span></code>.
+      </p>
+<p>
+        When calculating initial estimates for the roots of Bessel functions, a distinction
+        is made between positive order and negative order, and different methods
+        are used for these. In addition, different algorithms are used for the first
+        root <span class="emphasis"><em>m = 1</em></span> and for subsequent roots with higher rank
+        <span class="emphasis"><em>m ≥ 2</em></span>. Furthermore, estimates of the roots for Bessel
+        functions with order above and below a cutoff at <span class="emphasis"><em>ν = 2.2</em></span>
+        are calculated with different methods.
+      </p>
+<p>
+        Calculations of the estimates of <span class="emphasis"><em>j<sub>ν,1</sub></em></span> and <span class="emphasis"><em>y<sub>ν,1</sub></em></span>
+        with <span class="emphasis"><em>0 ≤ ν < 2.2</em></span> use empirically tabulated values. The
+        coefficients for these have been generated by a computer algebra system.
+      </p>
+<p>
+        Calculations of the estimates of <span class="emphasis"><em>j<sub>ν,1</sub></em></span> and <span class="emphasis"><em>y<sub>ν,1</sub></em></span>
+        with <span class="emphasis"><em>ν≥ 2.2</em></span> use Eqs.9.5.14 and 9.5.15 in M. Abramowitz
+        and I. A. Stegun, Handbook of Mathematical Functions, NBS (1964).
+      </p>
+<p>
+        In particular,
+      </p>
+<p>
+          <span class="emphasis"><em>j<sub>ν,1</sub> ≅ ν + 1.85575 ν<sup>⅓</sup> + 1.033150 ν<sup>-⅓</sup> - 0.00397 ν<sup>-1</sup> - 0.0908 ν<sup>-5/3</sup> + 0.043 ν<sup>-7/3</sup> +
+        …</em></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+          <span class="emphasis"><em>y<sub>ν,1</sub> ≅ ν + 0.93157 ν<sup>⅓</sup> + 0.26035 ν<sup>-⅓</sup> + 0.01198 ν<sup>-1</sup> - 0.0060 ν<sup>-5/3</sup> - 0.001 ν<sup>-7/3</sup> +
+        …</em></span>
+      </p>
+<p>
+        Calculations of the estimates of <span class="emphasis"><em>j<sub>ν, m</sub></em></span> and <span class="emphasis"><em>y<sub>ν,
+        m</sub></em></span> with rank <span class="emphasis"><em>m > 2</em></span> and <span class="emphasis"><em>0 ≤ ν <
+        2.2</em></span> use McMahon's approximation, as described in M. Abramowitz
+        and I. A. Stegan, Section 9.5 and 9.5.12. In particular,
+      </p>
+<p>
+          <span class="emphasis"><em>j<sub>ν,m</sub>, y<sub>ν,m</sub> ≅ β - (μ-1) / 8β</em></span>
+      </p>
+<p>
+                <span class="emphasis"><em>- 4(μ-1)(7μ - 31) / 3(8β)<sup>3</sup></em></span>
+      </p>
+<p>
+                <span class="emphasis"><em>-32(μ-1)(83μ² - 982μ + 3779) / 15(8β)<sup>5</sup></em></span>
+      </p>
+<p>
+                <span class="emphasis"><em>-64(μ-1)(6949μ<sup>3</sup> - 153855μ² + 1585743μ- 6277237) / 105(8a)<sup>7</sup></em></span>
+      </p>
+<p>
+                <span class="emphasis"><em>- …</em></span>                                                   (5)
+      </p>
+<p>
+        where <span class="emphasis"><em>μ = 4ν<sup>2</sup></em></span> and <span class="emphasis"><em>β = (m + ½ν - ¼)π</em></span> for
+        <span class="emphasis"><em>j<sub>ν,m</sub></em></span> and <span class="emphasis"><em>β = (m + ½ν -¾)π for <span class="emphasis"><em>y<sub>ν,m</sub></em></span></em></span>.
+      </p>
+<p>
+        Calculations of the estimates of <span class="emphasis"><em>j<sub>ν, m</sub></em></span> and <span class="emphasis"><em>y<sub>ν,
+        m</sub></em></span> with <span class="emphasis"><em>ν ≥ 2.2</em></span> use one term in the asymptotic
+        expansion given in Eq.9.5.22 and top line of Eq.9.5.26 combined with Eq.
+        9.3.39, all in M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions,
+        NBS (1964) explicit and easy-to-understand treatment for asymptotic expansion
+        of zeros. The latter two equations are expressed for argument <span class="emphasis"><em>(x)</em></span>
+        greater than one. (Olver also gives the series form of the equations in
+        <a href="http://dlmf.nist.gov/10.21#vi" target="_top">§10.21(vi) McMahon's Asymptotic
+        Expansions for Large Zeros</a> - using slightly different variable names).
+      </p>
+<p>
+        In summary,
+      </p>
+<p>
+          <span class="emphasis"><em>j<sub>ν, m</sub> ∼ νx(-ζ) + f<sub>1</sub>(-ζ/ν)</em></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>-ζ = ν<sup>-2/3</sup>a<sub>m</sub></em></span> and <span class="emphasis"><em>a<sub>m</sub></em></span> is the absolute
+        value of the <span class="emphasis"><em>m<sup>th</sup></em></span> root of <span class="emphasis"><em>Ai(x)</em></span>
+        on the negative real axis.
+      </p>
+<p>
+        Here <span class="emphasis"><em>x = x(-ζ)</em></span> is the inverse of the function
+      </p>
+<p>
+          <span class="emphasis"><em>⅔(-ζ)<sup>3/2</sup> = √(x² - 1) - cos⁻¹(1/x)</em></span>        (7)
+      </p>
+<p>
+        Furthermore,
+      </p>
+<p>
+          <span class="emphasis"><em>f<sub>1</sub>(-ζ) = ½x(-ζ) {h(-ζ)}² ⋅ b<sub>0</sub>(-ζ)</em></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+          <span class="emphasis"><em>h(-ζ) = {4(-ζ) / (x² - 1)}<sup>4</sup></em></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+          <span class="emphasis"><em>b<sub>0</sub>(-ζ) = -5/(48ζ²) + 1/(-ζ)<sup>½</sup> ⋅ { 5/(24(x<sup>2</sup>-1)<sup>3/2</sup>) + 1/(8(x<sup>2</sup>-1)<sup>½)</sup>}</em></span>
+      </p>
+<p>
+        When solving for <span class="emphasis"><em>x(-ζ)</em></span> in Eq. 7 above, the right-hand-side
+        is expanded to order 2 in a Taylor series for large <span class="emphasis"><em>x</em></span>.
+        This results in
+      </p>
+<p>
+          <span class="emphasis"><em>⅔(-ζ)<sup>3/2</sup> ≈ x + 1/2x - π/2</em></span>
+      </p>
+<p>
+        The positive root of the resulting quadratic equation is used to find an
+        initial estimate <span class="emphasis"><em>x(-ζ)</em></span>. This initial estimate is subsequently
+        refined with several steps of Newton-Raphson iteration in Eq. 7.
+      </p>
+<p>
+        Estimates of the roots of cylindrical Bessel functions of negative order
+        on the positive real axis are found using interlacing relations. For example,
+        the <span class="emphasis"><em>m<sup>th</sup></em></span> root of the cylindrical Bessel function <span class="emphasis"><em>j<sub>-ν,m</sub></em></span>
+        is bracketed by the <span class="emphasis"><em>m<sup>th</sup></em></span> root and the <span class="emphasis"><em>(m+1)<sup>th</sup></em></span>
+        root of the Bessel function of corresponding positive integer order. In other
+        words,
+      </p>
+<p>
+           <span class="emphasis"><em>j<sub>nν,m</sub></em></span> < <span class="emphasis"><em>j<sub>-ν,m</sub></em></span> < <span class="emphasis"><em>j<sub>nν,m+1</sub></em></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>m > 1</em></span> and <span class="emphasis"><em>n<sub>ν</sub></em></span> represents
+        the integral floor of the absolute value of <span class="emphasis"><em>|-ν|</em></span>.
+      </p>
+<p>
+        Similar bracketing relations are used to find estimates of the roots of Neumann
+        functions of negative order, whereby a discontinuity at every negative half-integer
+        order needs to be handled.
+      </p>
+<p>
+        Bracketing relations do not hold for the first root of cylindrical Bessel
+        functions and cylindrical Neumann functions with negative order. Therefore,
+        iterative algorithms combined with root-finding via bisection are used to
+        localize <span class="emphasis"><em>j<sub>-ν,1</sub></em></span> and <span class="emphasis"><em>y<sub>-ν,1</sub></em></span>.
+      </p>
+<h4>
+<a name="math_toolkit.bessel.bessel0.h7"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel0.testing"></a></span><a class="link" href="bessel0.html#math_toolkit.bessel.bessel0.testing">Testing</a>
+      </h4>
+<p>
+        The precision of evaluation of zeros was tested at 50 decimal digits using
+        <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code> and found
+        identical with spot values computed by <a href="http://www.wolframalpha.com/" target="_top">Wolfram
+        Alpha</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="mbessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel/bessel_over.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,202 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Bessel Function Overview</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../bessel.html" title="Bessel Functions">
+<link rel="prev" href="../bessel.html" title="Bessel Functions">
+<link rel="next" href="bessel.html" title="Bessel Functions of the First and Second Kinds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../bessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel_bessel_over">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.bessel.bessel_over"></a><a class="link" href="bessel_over.html" title="Bessel Function Overview">Bessel Function Overview</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.bessel.bessel_over.h0"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel_over.ordinary_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.bessel.bessel_over.ordinary_bessel_functions">Ordinary
+        Bessel Functions</a>
+      </h5>
+<p>
+        Bessel Functions are solutions to Bessel's ordinary differential equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel1.png"></span>
+      </p>
+<p>
+        where ν   is the <span class="emphasis"><em>order</em></span> of the equation, and may be an arbitrary
+        real or complex number, although integer orders are the most common occurrence.
+      </p>
+<p>
+        This library supports either integer or real orders.
+      </p>
+<p>
+        Since this is a second order differential equation, there must be two linearly
+        independent solutions, the first of these is denoted J<sub>v</sub>  
+and known as a Bessel
+        function of the first kind:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel2.png"></span>
+      </p>
+<p>
+        This function is implemented in this library as <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>.
+      </p>
+<p>
+        The second solution is denoted either Y<sub>v</sub>   or N<sub>v</sub>  
+and is known as either a Bessel
+        Function of the second kind, or as a Neumann function:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel3.png"></span>
+      </p>
+<p>
+        This function is implemented in this library as <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>.
+      </p>
+<p>
+        The Bessel functions satisfy the recurrence relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel4.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel5.png"></span>
+      </p>
+<p>
+        Have the derivatives:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel6.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel7.png"></span>
+      </p>
+<p>
+        Have the Wronskian relation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel8.png"></span>
+      </p>
+<p>
+        and the reflection formulae:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel9.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/bessel10.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel_over.h1"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel_over.modified_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.bessel.bessel_over.modified_bessel_functions">Modified
+        Bessel Functions</a>
+      </h5>
+<p>
+        The Bessel functions are valid for complex argument <span class="emphasis"><em>x</em></span>,
+        and an important special case is the situation where <span class="emphasis"><em>x</em></span>
+        is purely imaginary: giving a real valued result. In this case the functions
+        are the two linearly independent solutions to the modified Bessel equation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel1.png"></span>
+      </p>
+<p>
+        The solutions are known as the modified Bessel functions of the first and
+        second kind (or occasionally as the hyperbolic Bessel functions of the first
+        and second kind). They are denoted I<sub>v</sub>   and K<sub>v</sub>  
+respectively:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel2.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel3.png"></span>
+      </p>
+<p>
+        These functions are implemented in this library as <a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a>
+        and <a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> respectively.
+      </p>
+<p>
+        The modified Bessel functions satisfy the recurrence relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel4.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel5.png"></span>
+      </p>
+<p>
+        Have the derivatives:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel6.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel7.png"></span>
+      </p>
+<p>
+        Have the Wronskian relation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel8.png"></span>
+      </p>
+<p>
+        and the reflection formulae:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel9.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel10.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.bessel_over.h2"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.bessel_over.spherical_bessel_functions"></a></span><a class="link" href="bessel_over.html#math_toolkit.bessel.bessel_over.spherical_bessel_functions">Spherical
+        Bessel Functions</a>
+      </h5>
+<p>
+        When solving the Helmholtz equation in spherical coordinates by separation
+        of variables, the radial equation has the form:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/sbessel1.png"></span>
+      </p>
+<p>
+        The two linearly independent solutions to this equation are called the spherical
+        Bessel functions j<sub>n</sub>   and y<sub>n</sub>  , and are related to the ordinary Bessel functions
+        J<sub>n</sub>   and Y<sub>n</sub>   by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/sbessel2.png"></span>
+      </p>
+<p>
+        The spherical Bessel function of the second kind y<sub>n</sub>  
+is also known as the spherical
+        Neumann function n<sub>n</sub>.
+      </p>
+<p>
+        These functions are implemented in this library as <a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a>
+        and <a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_neumann</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel/mbessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel/mbessel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,481 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Modified Bessel Functions of the First and Second Kinds</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../bessel.html" title="Bessel Functions">
+<link rel="prev" href="bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds">
+<link rel="next" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bessel0.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel_mbessel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.bessel.mbessel"></a><a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">Modified Bessel Functions
+      of the First and Second Kinds</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.bessel.mbessel.h0"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.mbessel.synopsis"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.synopsis">Synopsis</a>
+      </h5>
+<p>
+        <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<h5>
+<a name="math_toolkit.bessel.mbessel.h1"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.mbessel.description"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.description">Description</a>
+      </h5>
+<p>
+        The functions <a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a>
+        and <a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> return
+        the result of the modified Bessel functions of the first and second kind
+        respectively:
+      </p>
+<p>
+        cyl_bessel_i(v, x) = I<sub>v</sub>(x)
+      </p>
+<p>
+        cyl_bessel_k(v, x) = K<sub>v</sub>(x)
+      </p>
+<p>
+        where:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel2.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel3.png"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+        The functions are also optimised for the relatively common case that T1 is
+        an integer.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The functions return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        whenever the result is undefined or complex. For <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        this occurs when <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span>
+        <span class="number">0</span></code> and v is not an integer, or when
+        <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span>
+        <span class="number">0</span></code> and <code class="computeroutput"><span class="identifier">v</span>
+        <span class="special">!=</span> <span class="number">0</span></code>.
+        For <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a> this occurs
+        when <code class="computeroutput"><span class="identifier">x</span> <span class="special"><=</span>
+        <span class="number">0</span></code>.
+      </p>
+<p>
+        The following graph illustrates the exponential behaviour of I<sub>v</sub>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cyl_bessel_i.png" align="middle"></span>
+      </p>
+<p>
+        The following graph illustrates the exponential decay of K<sub>v</sub>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cyl_bessel_k.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.mbessel.h2"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.mbessel.testing"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of test values: spot values calculated using functions.wolfram.com,
+        and a much larger set of tests computed using a simplified version of this
+        implementation (with all the special case handling removed).
+      </p>
+<h5>
+<a name="math_toolkit.bessel.mbessel.h3"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.mbessel.accuracy"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following tables show how the accuracy of these functions varies on various
+        platforms, along with a comparison to the GSL-1.9
+        library. Note that only results for the widest floating-point type on the
+        system are given, as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.bessel.mbessel.errors_rates_in_cyl_bessel_i"></a><p class="title"><b>Table 3.23. Errors Rates in cyl_bessel_i</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_i">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  I<sub>v</sub>
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10 Mean=3.4 GSL Peak=6000
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64 / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11 Mean=3
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux AMD64 / G++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11 Mean=4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=15 Mean=4
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.bessel.mbessel.errors_rates_in_cyl_bessel_k"></a><p class="title"><b>Table 3.24. Errors Rates in cyl_bessel_k</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_k">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  K<sub>v</sub>
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=9 Mean=2
+                </p>
+                <p>
+                  GSL Peak=9
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64 / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10 Mean=2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux AMD64 / G++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10 Mean=2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=12 Mean=5
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.bessel.mbessel.h4"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.mbessel.implementation"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.implementation">Implementation</a>
+      </h5>
+<p>
+        The following are handled as special cases first:
+      </p>
+<p>
+        When computing I<sub>v</sub>   for <span class="emphasis"><em>x < 0</em></span>, then ν   must be an integer
+        or a domain error occurs. If ν   is an integer, then the function is odd if ν   is
+        odd and even if ν   is even, and we can reflect to <span class="emphasis"><em>x > 0</em></span>.
+      </p>
+<p>
+        For I<sub>v</sub>   with v equal to 0, 1 or 0.5 are handled as special cases.
+      </p>
+<p>
+        The 0 and 1 cases use minimax rational approximations on finite and infinite
+        intervals. The coefficients are from:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            J.M. Blair and C.A. Edwards, <span class="emphasis"><em>Stable rational minimax approximations
+            to the modified Bessel functions I_0(x) and I_1(x)</em></span>, Atomic
+            Energy of Canada Limited Report 4928, Chalk River, 1974.
+          </li>
+<li class="listitem">
+            S. Moshier, <span class="emphasis"><em>Methods and Programs for Mathematical Functions</em></span>,
+            Ellis Horwood Ltd, Chichester, 1989.
+          </li>
+</ul></div>
+<p>
+        While the 0.5 case is a simple trigonometric function:
+      </p>
+<p>
+        I<sub>0.5</sub>(x) = sqrt(2 / πx) * sinh(x)
+      </p>
+<p>
+        For K<sub>v</sub>   with <span class="emphasis"><em>v</em></span> an integer, the result is calculated using
+        the recurrence relation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel5.png"></span>
+      </p>
+<p>
+        starting from K<sub>0</sub>   and K<sub>1</sub>   which are calculated using rational the approximations
+        above. These rational approximations are accurate to around 19 digits, and
+        are therefore only used when T has no more than 64 binary digits of precision.
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is small compared to <span class="emphasis"><em>v</em></span>,
+        I<sub>v</sub>x   is best computed directly from the series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel17.png"></span>
+      </p>
+<p>
+        In the general case, we first normalize ν   to [<code class="literal">0, [inf]</code>)
+        with the help of the reflection formulae:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel9.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel10.png"></span>
+      </p>
+<p>
+        Let μ   = ν - floor(ν + 1/2), then μ   is the fractional part of ν   such that |μ| <= 1/2
+        (we need this for convergence later). The idea is to calculate K<sub>μ</sub>(x) and K<sub>μ+1</sub>(x),
+        and use them to obtain I<sub>ν</sub>(x) and K<sub>ν</sub>(x).
+      </p>
+<p>
+        The algorithm is proposed by Temme in N.M. Temme, <span class="emphasis"><em>On the numerical
+        evaluation of the modified bessel function of the third kind</em></span>,
+        Journal of Computational Physics, vol 19, 324 (1975), which needs two continued
+        fractions as well as the Wronskian:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel11.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel12.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel8.png"></span>
+      </p>
+<p>
+        The continued fractions are computed using the modified Lentz's method (W.J.
+        Lentz, <span class="emphasis"><em>Generating Bessel functions in Mie scattering calculations
+        using continued fractions</em></span>, Applied Optics, vol 15, 668 (1976)).
+        Their convergence rates depend on <span class="emphasis"><em>x</em></span>, therefore we need
+        different strategies for large <span class="emphasis"><em>x</em></span> and small <span class="emphasis"><em>x</em></span>.
+      </p>
+<p>
+        <span class="emphasis"><em>x > v</em></span>, CF1 needs O(<span class="emphasis"><em>x</em></span>) iterations
+        to converge, CF2 converges rapidly.
+      </p>
+<p>
+        <span class="emphasis"><em>x <= v</em></span>, CF1 converges rapidly, CF2 fails to converge
+        when <span class="emphasis"><em>x</em></span> <code class="literal">-></code> 0.
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is large (<span class="emphasis"><em>x</em></span> > 2), both
+        continued fractions converge (CF1 may be slow for really large <span class="emphasis"><em>x</em></span>).
+        K<sub>μ</sub>   and K<sub>μ+1</sub>  
+can be calculated by
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel13.png"></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel14.png"></span>
+      </p>
+<p>
+        <span class="emphasis"><em>S</em></span> is also a series that is summed along with CF2, see
+        I.J. Thompson and A.R. Barnett, <span class="emphasis"><em>Modified Bessel functions I_v and
+        K_v of real order and complex argument to selected accuracy</em></span>, Computer
+        Physics Communications, vol 47, 245 (1987).
+      </p>
+<p>
+        When <span class="emphasis"><em>x</em></span> is small (<span class="emphasis"><em>x</em></span> <= 2), CF2
+        convergence may fail (but CF1 works very well). The solution here is Temme's
+        series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel15.png"></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/mbessel16.png"></span>
+      </p>
+<p>
+        f<sub>k</sub>   and h<sub>k</sub>  
+are also computed by recursions (involving gamma functions), but
+        the formulas are a little complicated, readers are referred to N.M. Temme,
+        <span class="emphasis"><em>On the numerical evaluation of the modified Bessel function of
+        the third kind</em></span>, Journal of Computational Physics, vol 19, 324
+        (1975). Note: Temme's series converge only for |μ| <= 1/2.
+      </p>
+<p>
+        K<sub>ν</sub>(x) is then calculated from the forward recurrence, as is K<sub>ν+1</sub>(x). With these
+        two values and f<sub>ν</sub>, the Wronskian yields I<sub>ν</sub>(x) directly.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bessel0.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/bessel/sph_bessel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/bessel/sph_bessel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,151 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Spherical Bessel Functions of the First and Second Kinds</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../bessel.html" title="Bessel Functions">
+<link rel="prev" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">
+<link rel="next" href="../hankel.html" title="Hankel Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="mbessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../hankel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_bessel_sph_bessel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.bessel.sph_bessel"></a><a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">Spherical Bessel Functions
+      of the First and Second Kinds</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.bessel.sph_bessel.h0"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.sph_bessel.synopsis"></a></span><a class="link" href="sph_bessel.html#math_toolkit.bessel.sph_bessel.synopsis">Synopsis</a>
+      </h5>
+<p>
+        <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">bessel</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<h5>
+<a name="math_toolkit.bessel.sph_bessel.h1"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.sph_bessel.description"></a></span><a class="link" href="sph_bessel.html#math_toolkit.bessel.sph_bessel.description">Description</a>
+      </h5>
+<p>
+        The functions <a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a>
+        and <a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_neumann</a> return
+        the result of the Spherical Bessel functions of the first and second kinds
+        respectively:
+      </p>
+<p>
+        sph_bessel(v, x) = j<sub>v</sub>(x)
+      </p>
+<p>
+        sph_neumann(v, x) = y<sub>v</sub>(x) = n<sub>v</sub>(x)
+      </p>
+<p>
+        where:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/sbessel2.png"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> for the single argument type T.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The functions return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        whenever the result is undefined or complex: this occurs when <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span> <span class="number">0</span></code>.
+      </p>
+<p>
+        The j<sub>v</sub>   function is cyclic like J<sub>v</sub>   but differs in its behaviour at the origin:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/sph_bessel.png" align="middle"></span>
+      </p>
+<p>
+        Likewise y<sub>v</sub>   is also cyclic for large x, but tends to -∞  
+for small <span class="emphasis"><em>x</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/sph_neumann.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.bessel.sph_bessel.h2"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.sph_bessel.testing"></a></span><a class="link" href="sph_bessel.html#math_toolkit.bessel.sph_bessel.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of test values: spot values calculated using functions.wolfram.com,
+        and a much larger set of tests computed using a simplified version of this
+        implementation (with all the special case handling removed).
+      </p>
+<h5>
+<a name="math_toolkit.bessel.sph_bessel.h3"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.sph_bessel.accuracy"></a></span><a class="link" href="sph_bessel.html#math_toolkit.bessel.sph_bessel.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Other than for some special cases, these functions are computed in terms
+        of <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and <a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>: refer to these functions
+        for accuracy data.
+      </p>
+<h5>
+<a name="math_toolkit.bessel.sph_bessel.h4"></a>
+        <span class="phrase"><a name="math_toolkit.bessel.sph_bessel.implementation"></a></span><a class="link" href="sph_bessel.html#math_toolkit.bessel.sph_bessel.implementation">Implementation</a>
+      </h5>
+<p>
+        Other than error handling and a couple of special cases these functions are
+        implemented directly in terms of their definitions:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/sbessel2.png"></span>
+      </p>
+<p>
+        The special cases occur for:
+      </p>
+<p>
+        j<sub>0</sub>  = <a class="link" href="../sinc/sinc_pi.html" title="sinc_pi">sinc_pi</a>(x) = sin(x)
+        / x
+      </p>
+<p>
+        and for small <span class="emphasis"><em>x < 1</em></span>, we can use the series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/sbessel5.png"></span>
+      </p>
+<p>
+        which neatly avoids the problem of calculating 0/0 that can occur with the
+        main definition as x → 0.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mbessel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../hankel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/building.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/building.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,154 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>If and How to Build a Boost.Math Library, and its Examples and Tests</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="perf_over.html" title="Performance">
+<link rel="next" href="history1.html" title="History and What's New">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="perf_over.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_building">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.building"></a><a class="link" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">If and How to Build a Boost.Math
+    Library, and its Examples and Tests</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.building.h0"></a>
+      <span class="phrase"><a name="math_toolkit.building.building_a_library_shared_dynami"></a></span><a class="link" href="building.html#math_toolkit.building.building_a_library_shared_dynami">Building a
+      Library (shared, dynamic .dll or static .lib)</a>
+    </h5>
+<p>
+      The first thing you need to ask yourself is "Do I need to build anything
+      at all?" as the bulk of this library is header only: meaning you can use
+      it just by #including the necessary header(s).
+    </p>
+<p>
+      For most simple uses, including a header (or few) is best for compile time
+      and program size.
+    </p>
+<p>
+      Refer to <a class="link" href="../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>C99 and C++ TR1 C-style Functions</a>
+      for pros and cons of using the TR1 components as opposed to the header only
+      ones.
+    </p>
+<p>
+      The <span class="emphasis"><em>only</em></span> time you <span class="emphasis"><em>need</em></span> to build the
+      library is if you want to use the <code class="computeroutput"><span class="keyword">extern</span>
+      <span class="string">"C"</span></code> functions declared in
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>. To build this using Boost.Build, from
+      a commandline boost-root directory issue a command like:
+    </p>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">toolset</span><span class="special">=</span><span class="identifier">gcc</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">math</span> <span class="identifier">install</span>
+</pre>
+<p>
+      that will do the job on Linux, while:
+    </p>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">toolset</span><span class="special">=</span><span class="identifier">msvc</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">math</span> <span class="special">--</span><span class="identifier">build</span><span class="special">-</span><span class="identifier">type</span><span class="special">=</span><span class="identifier">complete</span> <span class="identifier">stage</span>
+</pre>
+<p>
+      will work better on Windows (leaving libraries built in sub-folder <code class="computeroutput"><span class="special">/</span><span class="identifier">stage</span></code> below
+      your Boost root directory). Either way you should consult the <a href="http://www.boost.org/doc/libs/release/more/getting_started/index.html" target="_top">getting
+      started guide</a> for more information.
+    </p>
+<p>
+      You can also build the libraries from your favourite IDE or command line tool:
+      each <code class="computeroutput"><span class="keyword">extern</span> <span class="string">"C"</span></code>
+      function declared in <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> has its own source file with the same name
+      in <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">src</span><span class="special">/</span><span class="identifier">tr1</span></code>. Just
+      select the sources corresponding to the functions you are using and build them
+      into a library, or else add them directly to your project. Note that the directory
+      <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">src</span><span class="special">/</span><span class="identifier">tr1</span></code> will
+      need to be in your compiler's #include path as well as the boost-root directory
+      (MSVC Tools, Options, Projects and Solutions, VC++ Directories, Include files).
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        If you are using a Windows compiler that supports auto-linking and you have
+        built the sources yourself (or added them directly to your project) then
+        you will need to prevent <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+        from trying to auto-link to the binaries that Boost.Build generates. You
+        can do this by defining either BOOST_MATH_NO_LIB or BOOST_ALL_NO_LIB at project
+        level (so the defines get passed to each compiler invocation).
+      </p></td></tr>
+</table></div>
+<p>
+      Optionally the sources in <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">src</span><span class="special">/</span><span class="identifier">tr1</span></code>
+      have support for using <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">src</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">/</span><span class="identifier">pch</span><span class="special">.</span><span class="identifier">hpp</span></code> as a precompiled header <span class="emphasis"><em>if
+      your compiler supports precompiled headers.</em></span> Note that normally this
+      header is a do-nothing include: to activate the header so that it #includes
+      everything required by all the sources you will need to define BOOST_BUILD_PCH_ENABLED
+      on the command line, both when building the pre-compiled header and when building
+      the sources. Boost.Build will do this automatically when appropriate.
+    </p>
+<h5>
+<a name="math_toolkit.building.h1"></a>
+      <span class="phrase"><a name="math_toolkit.building.building_the_examples"></a></span><a class="link" href="building.html#math_toolkit.building.building_the_examples">Building
+      the Examples</a>
+    </h5>
+<p>
+      The examples are all located in <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">example</span></code>, they can all be built without reference
+      to any external libraries, either with Boost.Build using the supplied Jamfile,
+      or from your compiler's command line. The only requirement is that the Boost
+      headers are in your compilers #include search path.
+    </p>
+<h5>
+<a name="math_toolkit.building.h2"></a>
+      <span class="phrase"><a name="math_toolkit.building.building_the_tests"></a></span><a class="link" href="building.html#math_toolkit.building.building_the_tests">Building
+      the Tests</a>
+    </h5>
+<p>
+      The tests are located in <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">test</span></code> and are best built using Boost.Build
+      and the supplied Jamfile. If you plan to build them separately from your favourite
+      IDE then you will need to add <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">test</span></code> to the list of your compiler's search
+      paths.
+    </p>
+<p>
+      You will also need to build and link to the Boost.Regex library for many of
+      the tests: this can built from the command line by following the <a href="http://www.boost.org/doc/libs/release/more/getting_started/index.html" target="_top">getting
+      started guide</a>, using a command such as:
+    </p>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">toolset</span><span class="special">=</span><span class="identifier">gcc</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">regex</span> <span class="identifier">install</span>
+</pre>
+<p>
+      or
+    </p>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">toolset</span><span class="special">=</span><span class="identifier">msvc</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">regex</span> <span class="special">--</span><span class="identifier">build</span><span class="special">-</span><span class="identifier">type</span><span class="special">=</span><span class="identifier">complete</span> <span class="identifier">stage</span>
+</pre>
+<p>
+      depending on whether you are on Linux or Windows.
+    </p>
+<p>
+      Many of the tests have optional precompiled header support using the header
+      <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">pch</span><span class="special">.</span><span class="identifier">hpp</span></code>. Note that normally this header is a
+      do-nothing include: to activate the header so that it #includes everything
+      required by all the sources you will need to define BOOST_BUILD_PCH_ENABLED
+      on the command line, both when building the pre-compiled header and when building
+      the sources. Boost.Build will do this automatically when appropriate.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="perf_over.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/c99.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/c99.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,467 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>C99 C Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>
+<link rel="prev" href="tr1_0.html" title="C99 and TR1 C Functions Overview">
+<link rel="next" href="tr1_ref.html" title="TR1 C Functions Quick Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tr1_0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tr1_ref.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_c99">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.c99"></a><a class="link" href="c99.html" title="C99 C Functions">C99 C Functions</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.c99.h0"></a>
+      <span class="phrase"><a name="math_toolkit.c99.supported_c99_functions"></a></span><a class="link" href="c99.html#math_toolkit.c99.supported_c99_functions">Supported
+      C99 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">float_t</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">double_t</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">acoshf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">acoshl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">asinhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">asinhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">atanhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">atanhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cbrtf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cbrtl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">copysign</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">copysignf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">copysignl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erf</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erff</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erfc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erfcf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfcl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">expm1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expm1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expm1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmax</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaxf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmaxl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmin</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fminf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fminl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">hypot</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypotf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypotl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">lgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">lgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">log1p</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log1pf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log1pl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nextafter</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nextafterf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nextafterl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nexttoward</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nexttowardf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nexttowardl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">roundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">roundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">tgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">tgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">truncf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">truncl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      In addition sufficient additional overloads of the <code class="computeroutput"><span class="keyword">double</span></code>
+      versions of the above functions are provided, so that calling the function
+      with any mixture of <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, or <span class="emphasis"><em>integer</em></span>
+      arguments is supported, with the return type determined by the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+      type calculation rules</em></span></a>.
+    </p>
+<p>
+      For example:
+    </p>
+<pre class="programlisting"><span class="identifier">acoshf</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>  <span class="comment">// float version, returns float.</span>
+<span class="identifier">acosh</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>   <span class="comment">// also calls the float version and returns float.</span>
+<span class="identifier">acosh</span><span class="special">(</span><span class="number">2.0</span><span class="special">);</span>    <span class="comment">// double version, returns double.</span>
+<span class="identifier">acoshl</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>  <span class="comment">// long double version, returns a long double.</span>
+<span class="identifier">acosh</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>   <span class="comment">// also calls the long double version.</span>
+<span class="identifier">acosh</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>      <span class="comment">// integer argument is treated as a double, returns double.</span>
+</pre>
+<h5>
+<a name="math_toolkit.c99.h1"></a>
+      <span class="phrase"><a name="math_toolkit.c99.quick_reference"></a></span><a class="link" href="c99.html#math_toolkit.c99.quick_reference">Quick
+      Reference</a>
+    </h5>
+<p>
+      More detailed descriptions of these functions are available in the C99 standard.
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">float_t</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">double_t</span><span class="special">;</span>
+</pre>
+<p>
+      In this implementation <code class="computeroutput"><span class="identifier">float_t</span></code>
+      is the same as type <code class="computeroutput"><span class="keyword">float</span></code>, and
+      <code class="computeroutput"><span class="identifier">double_t</span></code> the same as type
+      <code class="computeroutput"><span class="keyword">double</span></code> unless the preprocessor
+      symbol FLT_EVAL_METHOD is defined, in which case these are set as follows:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                FLT_EVAL_METHOD
+              </p>
+            </th>
+<th>
+              <p>
+                float_t
+              </p>
+            </th>
+<th>
+              <p>
+                double_t
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                0
+              </p>
+            </td>
+<td>
+              <p>
+                float
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                1
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                2
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">acoshf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">acoshl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the inverse hyperbolic cosine of <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      See also <a class="link" href="inv_hyper/acosh.html" title="acosh">acosh</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">asinhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">asinhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the inverse hyperbolic sine of <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      See also <a class="link" href="inv_hyper/asinh.html" title="asinh">asinh</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">atanhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">atanhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the inverse hyperbolic tangent of <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      See also <a class="link" href="inv_hyper/atanh.html" title="atanh">atanh</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cbrtf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cbrtl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the cubed root of <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      See also <a class="link" href="powers/cbrt.html" title="cbrt">cbrt</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">copysign</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">copysignf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">copysignl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns a value with the magnitude of <span class="emphasis"><em>x</em></span> and the sign of
+      <span class="emphasis"><em>y</em></span>.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">erf</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erff</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the error function of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/erf1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_erf/error_function.html" title="Error Functions">erf</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">erfc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erfcf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfcl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the complementary error function of <span class="emphasis"><em>x</em></span> <code class="computeroutput"><span class="number">1</span><span class="special">-</span><span class="identifier">erf</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+      without the loss of precision implied by the subtraction.
+    </p>
+<p>
+      See also <a class="link" href="sf_erf/error_function.html" title="Error Functions">erfc</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">expm1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expm1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expm1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns <code class="computeroutput"><span class="identifier">exp</span><span class="special">(</span><span class="identifier">x</span><span class="special">)-</span><span class="number">1</span></code>
+      without the loss of precision implied by the subtraction.
+    </p>
+<p>
+      See also <a class="link" href="powers/expm1.html" title="expm1">expm1</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">fmax</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaxf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmaxl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the larger (most positive) of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">fmin</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fminf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fminl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the smaller (most negative) of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">hypot</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypotf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypotl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns <code class="computeroutput"><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">x</span><span class="special">*</span><span class="identifier">x</span>
+      <span class="special">+</span> <span class="identifier">y</span><span class="special">*</span><span class="identifier">y</span><span class="special">)</span></code>
+      without the danger of numeric overflow implied by that formulation.
+    </p>
+<p>
+      See also <a class="link" href="powers/hypot.html" title="hypot">hypot</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">lgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">lgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the log of the gamma function of <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lgamm1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_gamma/lgamma.html" title="Log Gamma">lgamma</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer as
+      a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>:
+      equivalent to <code class="computeroutput"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="number">0.5</span><span class="special">)</span></code>
+    </p>
+<p>
+      See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">log1p</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log1pf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log1pl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span></code> without the loss of precision implied by that
+      formulation.
+    </p>
+<p>
+      See also <a class="link" href="powers/log1p.html" title="log1p">log1p</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer as
+      a <code class="computeroutput"><span class="keyword">long</span></code>: equivalent to <code class="computeroutput"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">x</span>
+      <span class="special">+</span> <span class="number">0.5</span><span class="special">)</span></code>
+    </p>
+<p>
+      See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">nextafter</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nextafterf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nextafterl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the next representable floating point number after <span class="emphasis"><em>x</em></span>
+      in the direction of <span class="emphasis"><em>y</em></span>, or <span class="emphasis"><em>x</em></span> if <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span> <span class="identifier">y</span></code>.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">nexttoward</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nexttowardf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nexttowardl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      As <code class="computeroutput"><span class="identifier">nextafter</span></code>, but with <span class="emphasis"><em>y</em></span>
+      always expressed as a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">roundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">roundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the value <span class="emphasis"><em>x</em></span> rounded to the nearest integer: equivalent
+      to <code class="computeroutput"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="number">0.5</span><span class="special">)</span></code>
+    </p>
+<p>
+      See also <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> for the full
+      template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">tgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">tgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the gamma function of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/gamm1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">truncf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">truncl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns <span class="emphasis"><em>x</em></span> truncated to the nearest integer.
+    </p>
+<p>
+      See also <a class="link" href="rounding/trunc.html" title="Truncation Functions">trunc</a> for the full
+      template (header only) version of this function.
+    </p>
+<p>
+      See also <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf" target="_top">C99
+      ISO Standard</a>
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tr1_0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tr1_ref.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/comp_compilers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/comp_compilers.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,369 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Comparing Compilers</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="getting_best.html" title="Getting the Best Performance from this Library">
+<link rel="next" href="tuning.html" title="Performance Tuning Macros">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="getting_best.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tuning.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_comp_compilers">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Compilers">Comparing Compilers</a>
+</h2></div></div></div>
+<p>
+      After a good choice of build settings the next most important thing you can
+      do, is choose your compiler - and the standard C library it sits on top of
+      - very carefully. GCC-3.x in particular has been found to be particularly bad
+      at inlining code, and performing the kinds of high level transformations that
+      good C++ performance demands (thankfully GCC-4.x is somewhat better in this
+      respect).
+    </p>
+<div class="table">
+<a name="math_toolkit.comp_compilers.performance_comparison_of_variou"></a><p class="title"><b>Table 14.2. Performance Comparison of Various Windows Compilers</b></p>
+<div class="table-contents"><table class="table" summary="Performance Comparison of Various Windows Compilers">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Function
+              </p>
+            </th>
+<th>
+              <p>
+                Intel C++ 10.0
+              </p>
+              <p>
+                ( /Ox /Qipo /QxN )
+              </p>
+            </th>
+<th>
+              <p>
+                Microsoft Visual C++ 8.0
+              </p>
+              <p>
+                ( /Ox /arch:SSE2 )
+              </p>
+            </th>
+<th>
+              <p>
+                Cygwin G++ 3.4
+              </p>
+              <p>
+                ( /O3 )
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_function.html" title="Error Functions">erf</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.118e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.483e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.24</p>
+<p> </p>
+<p>(1.336e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.439e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.888e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>7.88</p>
+<p> </p>
+<p>(3.500e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+                and <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.631e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.14</p>
+<p> </p>
+<p>(1.852e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.05</p>
+<p> </p>
+<p>(4.975e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.133e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.19</p>
+<p> </p>
+<p>(7.311e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.60</p>
+<p> </p>
+<p>(1.597e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.453e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.16</p>
+<p> </p>
+<p>(2.847e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.83</p>
+<p> </p>
+<p>(6.947e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.735e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.41</p>
+<p> </p>
+<p>(9.504e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.78</p>
+<p> </p>
+<p>(1.872e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.637e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.38</p>
+<p> </p>
+<p>(3.631e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.31</p>
+<p> </p>
+<p>(8.736e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.716e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.29</p>
+<p> </p>
+<p>(9.982e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.56</p>
+<p> </p>
+<p>(1.974e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="getting_best.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tuning.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/comparisons.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/comparisons.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,3128 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Comparisons to Other Open Source Libraries</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="tuning.html" title="Performance Tuning Macros">
+<link rel="next" href="perf_test_app.html" title="The Performance Test Application">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tuning.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="perf_test_app.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_comparisons">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.comparisons"></a><a class="link" href="comparisons.html" title="Comparisons to Other Open Source Libraries">Comparisons to Other Open Source
+    Libraries</a>
+</h2></div></div></div>
+<p>
+      We've run our performance tests both for our own code, and against other open
+      source implementations of the same functions. The results are presented below
+      to give you a rough idea of how they all compare.
+    </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        You should exercise extreme caution when interpreting these results, relative
+        performance may vary by platform, the tests use data that gives good code
+        coverage of <span class="emphasis"><em>our</em></span> code, but which may skew the results
+        towards the corner cases. Finally, remember that different libraries make
+        different choices with regard to performance verses numerical stability.
+      </p></td></tr>
+</table></div>
+<h4>
+<a name="math_toolkit.comparisons.h0"></a>
+      <span class="phrase"><a name="math_toolkit.comparisons.comparison_to_gsl_1_13_and_cephe"></a></span><a class="link" href="comparisons.html#math_toolkit.comparisons.comparison_to_gsl_1_13_and_cephe">Comparison
+      to GSL-1.13 and Cephes</a>
+    </h4>
+<p>
+      All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM,
+      Windows Vista machine, with the test program compiled with Microsoft Visual
+      C++ 2009 using the /Ox option.
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Function
+              </p>
+            </th>
+<th>
+              <p>
+                Boost
+              </p>
+            </th>
+<th>
+              <p>
+                GSL-1.9
+              </p>
+            </th>
+<th>
+              <p>
+                Cephes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="powers/cbrt.html" title="cbrt">cbrt</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.873e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                N/A
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.699e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="powers/log1p.html" title="log1p">log1p</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.664e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.677e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.189e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="powers/expm1.html" title="expm1">expm1</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.760e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.248e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.169e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.80</p>
+<p> </p>
+<p>(2.997e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.54</p>
+<p> </p>
+<p>(2.569e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.666e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/lgamma.html" title="Log Gamma">lgamma</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.20</p>
+<p> </p>
+<p>(3.045e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.14</p>
+<p> </p>
+<p>(5.713e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.381e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_function.html" title="Error Functions">erf</a> and
+                <a class="link" href="sf_erf/error_function.html" title="Error Functions">erfc</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.483e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.052e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.722e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.182e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.57</p>
+<p> </p>
+<p>(2.209e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.29</p>
+<p> </p>
+<p>(2.651e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.943e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                N/A
+              </p>
+            </td>
+<td>
+              <p>
+                +INF [1]
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+                and <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.670e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.16</p>
+<p> </p>
+<p>(1.935e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.16</p>
+<p> </p>
+<p>(1.935e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.075e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                N/A
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.45</p>
+<p> </p>
+<p>(1.489e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>17.89[2]</p>
+<p> </p>
+<p>(4.248e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.214e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.374e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.924e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.487e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.823e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.783e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.927e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                N/A
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.465e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.230e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.977e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+</tbody>
+<tbody class="footnotes"><tr><td colspan="4">
+<div id="ftn.math_toolkit.comparisons.f0" class="footnote"><p>[1] 
+                  Cephes gets stuck in an infinite loop while trying to execute our
+                  test cases.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f1" class="footnote"><p>[2] 
+                  The performance here is dominated by a few cases where the parameters
+                  grow very large: faster asymptotic expansions are available, but
+                  are of limited (or even frankly terrible) precision. The same issue
+                  effects all of our Bessel function implementations, but doesn't
+                  necessarily show in the current performance data. More investigation
+                  is needed here.
+                </p></div>
+</td></tr></tbody>
+</table></div>
+<h4>
+<a name="math_toolkit.comparisons.h1"></a>
+      <span class="phrase"><a name="math_toolkit.comparisons.comparison_to_the_r_and_dcdflib_"></a></span><a class="link" href="comparisons.html#math_toolkit.comparisons.comparison_to_the_r_and_dcdflib_">Comparison
+      to the R and DCDFLIB Statistical Libraries on Windows</a>
+    </h4>
+<p>
+      All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM,
+      Windows Vista machine, with the test program compiled with Microsoft Visual
+      C++ 2009, and R-2.9.2 compiled in "standalone mode" with MinGW-4.3
+      (R-2.9.2 appears not to be buildable with Visual C++).
+    </p>
+<div class="table">
+<a name="math_toolkit.comparisons.a_comparison_to_the_r_statistica"></a><p class="title"><b>Table 14.5. A Comparison to the R Statistical Library on Windows XP</b></p>
+<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Windows XP">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Statistical Function
+              </p>
+            </th>
+<th>
+              <p>
+                Boost
+              </p>
+            </th>
+<th>
+              <p>
+                R
+              </p>
+            </th>
+<th>
+              <p>
+                DCDFLIB
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.08</p>
+<p> </p>
+<p>(1.385e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.278e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.06</p>
+<p> </p>
+<p>(1.349e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.975e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>67.66[1]</p>
+<p> </p>
+<p>(3.366e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.23</p>
+<p> </p>
+<p>(2.103e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.06</p>
+<p> </p>
+<p>(4.503e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.81</p>
+<p> </p>
+<p>(7.680e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.239e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.254e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.15</p>
+<p> </p>
+<p>(3.746e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>7.25</p>
+<p> </p>
+<p>(2.358e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.134e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.08</p>
+<p> </p>
+<p>(1.227e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.203e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.203e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi
+                Squared Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.21</p>
+<p> </p>
+<p>(5.021e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.83</p>
+<p> </p>
+<p>(1.176e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.155e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi
+                Squared Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.930e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.72</p>
+<p> </p>
+<p>(5.243e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.73</p>
+<p> </p>
+<p>(1.106e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.798e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.89</p>
+<p> </p>
+<p>(2.236e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.41</p>
+<p> </p>
+<p>(9.006e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.380e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher F Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.556e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.34</p>
+<p> </p>
+<p>(1.283e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.24</p>
+<p> </p>
+<p>(1.183e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher F Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.987e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.33</p>
+<p> </p>
+<p>(9.325e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.16</p>
+<p> </p>
+<p>(2.205e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.52</p>
+<p> </p>
+<p>(6.240e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.11</p>
+<p> </p>
+<p>(1.279e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.111e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.24</p>
+<p> </p>
+<p>(2.179e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>6.25</p>
+<p> </p>
+<p>(1.102e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.764e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.60[2]</p>
+<p> </p>
+<p>(5.987e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.665e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.684e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.53</p>
+<p> </p>
+<p>(2.004e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.714e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.24</p>
+<p> </p>
+<p>(8.984e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.02</p>
+<p> </p>
+<p>(2.084e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.043e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.579e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.49</p>
+<p> </p>
+<p>(5.332e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.622e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.57</p>
+<p> </p>
+<p>(1.507e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                Binomial Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.227e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.25</p>
+<p> </p>
+<p>(1.403e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.21</p>
+<p> </p>
+<p>(1.378e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                Binomial Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.594e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>43.43[3]</p>
+<p> </p>
+<p>(3.732e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.48</p>
+<p> </p>
+<p>(2.994e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+                Chi Squared Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.16</p>
+<p> </p>
+<p>(3.926e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>79.93</p>
+<p> </p>
+<p>(1.450e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.814e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+                Chi Squared Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.00</p>
+<p> </p>
+<p>(3.393e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>393.90[4]</p>
+<p> </p>
+<p>(2.673e-002s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.786e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral
+                F Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.59</p>
+<p> </p>
+<p>(1.128e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.087e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.274e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral
+                F Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.750e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.62</p>
+<p> </p>
+<p>(7.681e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.274e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral
+                T distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.41</p>
+<p> </p>
+<p>(1.852e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.436e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral
+                T distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.31</p>
+<p> </p>
+<p>(5.768e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span>[5]</p>
+<p> </p>
+<p>(4.411e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.373e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.68</p>
+<p> </p>
+<p>(1.409e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>6.01</p>
+<p> </p>
+<p>(5.029e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.29</p>
+<p> </p>
+<p>(1.521e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.182e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.85</p>
+<p> </p>
+<p>(1.283e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.18</p>
+<p> </p>
+<p>(5.193e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.98</p>
+<p> </p>
+<p>(1.314e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.410e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson
+                Distribution</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.203e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.20</p>
+<p> </p>
+<p>(2.642e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>7.86</p>
+<p> </p>
+<p>(9.457e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students
+                t Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.655e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.06</p>
+<p> </p>
+<p>(9.166e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(8.999e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students
+                t Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.294e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.36</p>
+<p> </p>
+<p>(3.131e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.82</p>
+<p> </p>
+<p>(1.106e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.865e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.33</p>
+<p> </p>
+<p>(4.341e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.608e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.22</p>
+<p> </p>
+<p>(4.410e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+</tbody>
+<tbody class="footnotes"><tr><td colspan="4">
+<div id="ftn.math_toolkit.comparisons.f2" class="footnote"><p>[1] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f3" class="footnote"><p>[2] 
+                  This result is somewhat misleading: for small values of the parameters
+                  there is virtually no difference between the two libraries, but
+                  for large values the Boost implementation is <span class="emphasis"><em>much</em></span>
+                  slower, albeit with much improved precision.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f4" class="footnote"><p>[3] 
+                  The R library appears to use a linear-search strategy, that can
+                  perform very badly in a small number of pathological cases, but
+                  may or may not be more efficient in "typical" cases
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f5" class="footnote"><p>[4] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f6" class="footnote"><p>[5] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+</td></tr></tbody>
+</table></div>
+</div>
+<br class="table-break"><h4>
+<a name="math_toolkit.comparisons.h2"></a>
+      <span class="phrase"><a name="math_toolkit.comparisons.comparison_to_the_r_statistical_"></a></span><a class="link" href="comparisons.html#math_toolkit.comparisons.comparison_to_the_r_statistical_">Comparison
+      to the R Statistical Library on Linux</a>
+    </h4>
+<p>
+      All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM,
+      Ubuntu Linux 9 machine, with the test program and R-2.9.2 compiled with GNU
+      G++ 4.3.3 using -O3 -DNDEBUG=1.
+    </p>
+<div class="table">
+<a name="math_toolkit.comparisons.a_comparison_to_the_r_statistic0"></a><p class="title"><b>Table 14.6. A Comparison to the R Statistical Library on Linux</b></p>
+<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Linux">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Statistical Function
+              </p>
+            </th>
+<th>
+              <p>
+                Boost
+              </p>
+            </th>
+<th>
+              <p>
+                R
+              </p>
+            </th>
+<th>
+              <p>
+                DCDFLIB
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.09</p>
+<p> </p>
+<p>(3.189e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.526e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.19</p>
+<p> </p>
+<p>(1.822e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.185e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>30.51[1]</p>
+<p> </p>
+<p>(3.616e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.52</p>
+<p> </p>
+<p>(2.989e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.41</p>
+<p> </p>
+<p>(9.175e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.59</p>
+<p> </p>
+<p>(7.476e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.081e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.57</p>
+<p> </p>
+<p>(6.925e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.407e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>7.43</p>
+<p> </p>
+<p>(3.274e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.594e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(1.654e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.21</p>
+<p> </p>
+<p>(1.752e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.448e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi
+                Squared Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.61</p>
+<p> </p>
+<p>(1.376e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.36</p>
+<p> </p>
+<p>(1.243e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.270e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi
+                Squared Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.252e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.34</p>
+<p> </p>
+<p>(5.700e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.47</p>
+<p> </p>
+<p>(1.477e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.342e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.25</p>
+<p> </p>
+<p>(1.677e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.827e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.07</p>
+<p> </p>
+<p>(9.470e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher F Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.62</p>
+<p> </p>
+<p>(2.324e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.19</p>
+<p> </p>
+<p>(1.711e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.437e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher F Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.53</p>
+<p> </p>
+<p>(1.577e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.033e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.63</p>
+<p> </p>
+<p>(2.719e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.18</p>
+<p> </p>
+<p>(1.582e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.63</p>
+<p> </p>
+<p>(1.309e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.980e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.19</p>
+<p> </p>
+<p>(4.770e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>6.94</p>
+<p> </p>
+<p>(1.513e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.179e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.20[2]</p>
+<p> </p>
+<p>(3.522e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.601e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/hypergeometric_dist.html" title="Hypergeometric Distribution">hypergeometric
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.279e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.57</p>
+<p> </p>
+<p>(2.125e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.398e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.75</p>
+<p> </p>
+<p>(2.588e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.893e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.30</p>
+<p> </p>
+<p>(1.285e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.831e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.39</p>
+<p> </p>
+<p>(2.539e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.10</p>
+<p> </p>
+<p>(5.551e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.037e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                Binomial Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.08</p>
+<p> </p>
+<p>(1.563e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.444e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.444e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                Binomial Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.700e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>25.92[3]</p>
+<p> </p>
+<p>(4.407e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.93</p>
+<p> </p>
+<p>(3.274e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+                Chi Squared Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.06</p>
+<p> </p>
+<p>(2.841e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>25.01</p>
+<p> </p>
+<p>(1.405e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.617e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+                Chi Squared Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>8.47</p>
+<p> </p>
+<p>(1.879e-003s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>144.91[4]</p>
+<p> </p>
+<p>(3.214e-002s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.218e-004s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral
+                F Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.33</p>
+<p> </p>
+<p>(5.868e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.42</p>
+<p> </p>
+<p>(8.058e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.682e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral
+                F Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.64</p>
+<p> </p>
+<p>(7.869e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>6.63</p>
+<p> </p>
+<p>(9.256e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.396e-004s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral
+                T distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.91</p>
+<p> </p>
+<p>(3.357e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(6.844e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral
+                T distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.57</p>
+<p> </p>
+<p>(9.265e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span>[5]</p>
+<p> </p>
+<p>(5.916e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal Distribution</a>
+                CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.074e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.16</p>
+<p> </p>
+<p>(1.245e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>5.36</p>
+<p> </p>
+<p>(5.762e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal Distribution</a>
+                Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.28</p>
+<p> </p>
+<p>(1.902e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.490e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.35</p>
+<p> </p>
+<p>(1.542e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.43</p>
+<p> </p>
+<p>(1.198e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.25</p>
+<p> </p>
+<p>(1.110e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.937e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson
+                Distribution</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.11</p>
+<p> </p>
+<p>(3.032e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.724e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>4.07</p>
+<p> </p>
+<p>(1.110e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students
+                t Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>2.17</p>
+<p> </p>
+<p>(2.020e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.321e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.10</p>
+<p> </p>
+<p>(1.021e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students
+                t Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.18</p>
+<p> </p>
+<p>(3.972e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.364e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>3.89</p>
+<p> </p>
+<p>(1.308e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull
+                Distribution</a> CDF
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.662e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(3.808e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull
+                Distribution</a> Quantile
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.112e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.05</p>
+<p> </p>
+<p>(4.317e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                NA
+              </p>
+            </td>
+</tr>
+</tbody>
+<tbody class="footnotes"><tr><td colspan="4">
+<div id="ftn.math_toolkit.comparisons.f7" class="footnote"><p>[1] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f8" class="footnote"><p>[2] 
+                  This result is somewhat misleading: for small values of the parameters
+                  there is virtually no difference between the two libraries, but
+                  for large values the Boost implementation is <span class="emphasis"><em>much</em></span>
+                  slower, albeit with much improved precision.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f9" class="footnote"><p>[3] 
+                  The R library appears to use a linear-search strategy, that can
+                  perform very badly in a small number of pathological cases, but
+                  may or may not be more efficient in "typical" cases
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f10" class="footnote"><p>[4] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+<div id="ftn.math_toolkit.comparisons.f11" class="footnote"><p>[5] 
+                  There are a small number of our test cases where the R library
+                  fails to converge on a result: these tend to dominate the performance
+                  result.
+                </p></div>
+</td></tr></tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tuning.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="perf_test_app.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/compile_time.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/compile_time.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Compile time GCD and LCM determination</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="run_time.html" title="Run-time GCD & LCM Determination">
+<link rel="next" href="header1.html" title="Header <boost/math/common_factor.hpp>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="run_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_compile_time">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.compile_time"></a><a class="link" href="compile_time.html" title="Compile time GCD and LCM determination">Compile time GCD and LCM determination</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_ct.hpp>
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">static_gcd_type</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value2</span> <span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_gcd</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">static_gcd_type</span><span class="special">,</span> <span class="identifier">implementation_defined</span><span class="special">></span>
+<span class="special">{</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value2</span> <span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_lcm</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">static_gcd_type</span><span class="special">,</span> <span class="identifier">implementation_defined</span><span class="special">></span>
+<span class="special">{</span>
+<span class="special">};</span>
+</pre>
+<p>
+      The type <code class="computeroutput"><span class="identifier">static_gcd_type</span></code> is
+      the widest unsigned-integer-type that is supported for use in integral-constant-expressions
+      by the compiler. Usually this the same type as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span></code>,
+      but may fall back to being <code class="computeroutput"><span class="keyword">unsigned</span>
+      <span class="keyword">long</span></code> for some older compilers.
+    </p>
+<p>
+      The boost::math::static_gcd and boost::math::static_lcm class templates take
+      two value-based template parameters of the <span class="emphasis"><em>static_gcd_type</em></span>
+      type and inherit from the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span></code>. Inherited from the base class,
+      they have a member <span class="emphasis"><em>value</em></span> that is the greatest common factor
+      or least common multiple, respectively, of the template arguments. A compile-time
+      error will occur if the least common multiple is beyond the range of <code class="computeroutput"><span class="identifier">static_gcd_type</span></code>.
+    </p>
+<h4>
+<a name="math_toolkit.compile_time.h0"></a>
+      <span class="phrase"><a name="math_toolkit.compile_time.example"></a></span><a class="link" href="compile_time.html#math_toolkit.compile_time.example">Example</a>
+    </h4>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">common_factor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iterator</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The GCD and LCM of 6 and 15 are "</span>
+   <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd</span><span class="special">(</span><span class="number">6</span><span class="special">,</span> <span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" and "</span>
+   <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm</span><span class="special">(</span><span class="number">6</span><span class="special">,</span> <span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", respectively."</span>
+   <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The GCD and LCM of 8 and 9 are "</span>
+   <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_gcd</span><span class="special"><</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">>::</span><span class="identifier">value</span>
+   <span class="special"><<</span> <span class="string">" and "</span>
+   <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_lcm</span><span class="special"><</span><span class="number">8</span><span class="special">,</span> <span class="number">9</span><span class="special">>::</span><span class="identifier">value</span>
+   <span class="special"><<</span> <span class="string">", respectively."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="keyword">int</span>  <span class="identifier">a</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">4</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="number">6</span> <span class="special">},</span> <span class="identifier">b</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">7</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="number">9</span> <span class="special">},</span> <span class="identifier">c</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">transform</span><span class="special">(</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">a</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd_evaluator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>()</span> <span class="special">);</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">c</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">" "</span><span class="special">)</span> <span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="run_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/compilers_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/compilers_overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,673 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Compilers</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="error_handling.html" title="Error Handling">
+<link rel="next" href="config_macros.html" title="Configuration Macros">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="error_handling.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="config_macros.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_compilers_overview">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.compilers_overview"></a><a class="link" href="compilers_overview.html" title="Compilers">Compilers</a>
+</h2></div></div></div>
+<p>
+      This section contains some information about how various compilers work with
+      this library. It is not comprehensive and updated experiences are always welcome.
+      Some effort has been made to suppress unhelpful warnings but it is difficult
+      to achieve this on all systems.
+    </p>
+<div class="table">
+<a name="math_toolkit.compilers_overview.supported_tested_compilers"></a><p class="title"><b>Table 1.9. Supported/Tested Compilers</b></p>
+<div class="table-contents"><table class="table" summary="Supported/Tested Compilers">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Platform
+              </p>
+            </th>
+<th>
+              <p>
+                Compiler
+              </p>
+            </th>
+<th>
+              <p>
+                Has long double support
+              </p>
+            </th>
+<th>
+              <p>
+                Notes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                MSVC 7.1 and later
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free at level 4 with this compiler.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                Intel 8.1 and later
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free at level 4 with this compiler.
+                However, The tests cases tend to generate a lot of warnings relating
+                to numeric underflow of the test data: these are harmless.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                GNU Mingw32 C++
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                GNU Cygwin C++
+              </p>
+            </td>
+<td>
+              <p>
+                No
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+              </p>
+              <p>
+                Long double support has been disabled because there are no native
+                long double C std library functions available.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                Borland C++ 5.8.2 (Developer studio 2006)
+              </p>
+            </td>
+<td>
+              <p>
+                No
+              </p>
+            </td>
+<td>
+              <p>
+                We have only partial compatability with this compiler:
+              </p>
+              <p>
+                Long double support has been disabled because the native long double
+                C standard library functions really only forward to the double versions.
+                This can result in unpredictable behaviour when using the long double
+                overloads: for example <code class="computeroutput"><span class="identifier">sqrtl</span></code>
+                applied to a finite value, can result in an infinite result.
+              </p>
+              <p>
+                Some functions still fail to compile, there are no known workarounds
+                at present.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows 7/Netbeans 7.2
+              </p>
+            </td>
+<td>
+              <p>
+                Clang 3.1
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                Spot examples OK. Expect all tests to compile and run OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                GNU C++ 3.4 and later
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                Clang 3.2
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                Intel C++ 10.0 and later
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+                However, The tests cases tend to generate a lot of warnings relating
+                to numeric underflow of the test data: these are harmless.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                Intel C++ 8.1 and 9.1
+              </p>
+            </td>
+<td>
+              <p>
+                No
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                Long double support has been disabled with these compiler releases
+                because calling the standard library long double math functions can
+                result in a segfault. The issue is Linux distribution and glibc version
+                specific and is Intel bug report #409291. Fully up to date releases
+                of Intel 9.1 (post version l_cc_c_9.1.046) shouldn't have this problem.
+                If you need long double support with this compiler, then comment
+                out the define of BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS at line
+                55 of boost/math/tools/config.hpp.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+                However, The tests cases tend to generate a lot of warnings relating
+                to numeric underflow of the test data: these are harmless.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                QLogic PathScale 3.0
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                Some tests involving conceptual checks fail to build, otherwise there
+                appear to be no issues.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Linux
+              </p>
+            </td>
+<td>
+              <p>
+                Sun Studio 12
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                Some tests involving function overload resolution fail to build,
+                these issues should be rairly encountered in practice.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Solaris
+              </p>
+            </td>
+<td>
+              <p>
+                Sun Studio 12
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                Some tests involving function overload resolution fail to build,
+                these issues should be rairly encountered in practice.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Solaris
+              </p>
+            </td>
+<td>
+              <p>
+                GNU C++ 4.x
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                We aim to keep our headers warning free with -Wall with this compiler.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                HP Tru64
+              </p>
+            </td>
+<td>
+              <p>
+                Compaq C++ 7.1
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                HP-UX Itanium
+              </p>
+            </td>
+<td>
+              <p>
+                HP aCC 6.x
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                Unfortunately this compiler emits quite a few warnings from libraries
+                upon which we depend (TR1, Array etc).
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                HP-UX PA-RISC
+              </p>
+            </td>
+<td>
+              <p>
+                GNU C++ 3.4
+              </p>
+            </td>
+<td>
+              <p>
+                No
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Apple Mac OS X, Intel
+              </p>
+            </td>
+<td>
+              <p>
+                Darwin/GNU C++ 4.x
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Apple Mac OS X, PowerPC
+              </p>
+            </td>
+<td>
+              <p>
+                Darwin/GNU C++ 4.x
+              </p>
+            </td>
+<td>
+              <p>
+                No
+              </p>
+            </td>
+<td>
+              <p>
+                All tests OK.
+              </p>
+              <p>
+                Long double support has been disabled on this platform due to the
+                rather strange nature of Darwin's 106-bit long double implementation.
+                It should be possible to make this work if someone is prepared to
+                offer assistance.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Apple Mac OS X,
+              </p>
+            </td>
+<td>
+              <p>
+                Clang 3.2
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests expected to be OK.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                IBM AIX
+              </p>
+            </td>
+<td>
+              <p>
+                IBM xlc 5.3
+              </p>
+            </td>
+<td>
+              <p>
+                Yes
+              </p>
+            </td>
+<td>
+              <p>
+                All tests pass except for our fpclassify tests which fail due to
+                a bug in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>, the bug effects
+                the test code, not fpclassify itself. The IBM compiler group are
+                aware of the problem.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.compilers_overview.unsupported_compilers"></a><p class="title"><b>Table 1.10. Unsupported Compilers</b></p>
+<div class="table-contents"><table class="table" summary="Unsupported Compilers">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Platform
+              </p>
+            </th>
+<th>
+              <p>
+                Compiler
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                Borland C++ 5.9.2 (Borland Developer Studio 2007)
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Windows
+              </p>
+            </td>
+<td>
+              <p>
+                MSVC 6 and 7
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+      If your compiler or platform is not listed above, please try running the regression
+      tests: cd into boost-root/libs/math/test and do a:
+    </p>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">mytoolset</span>
+</pre>
+<p>
+      where "mytoolset" is the name of the Boost.Build
+      toolset used for your compiler. The chances are that <span class="bold"><strong>many
+      of the accuracy tests will fail at this stage</strong></span> - don't panic - the
+      default acceptable error tolerances are quite tight, especially for long double
+      types with an extended exponent range (these cause more extreme test cases
+      to be executed for some functions). You will need to cast an eye over the output
+      from the failing tests and make a judgement as to whether the error rates are
+      acceptable or not.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error_handling.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="config_macros.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/concepts.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/concepts.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1360 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Conceptual Requirements for Real Number Types</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+<link rel="prev" href="high_precision/using_test.html" title="Using without expression templates for Boost.Test and others">
+<link rel="next" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="high_precision/using_test.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dist_concept.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_concepts">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.concepts"></a><a class="link" href="concepts.html" title="Conceptual Requirements for Real Number Types">Conceptual Requirements for Real
+    Number Types</a>
+</h2></div></div></div>
+<p>
+      The functions, and statistical distributions in this library can be used with
+      any type <span class="emphasis"><em>RealType</em></span> that meets the conceptual requirements
+      given below. All the built-in floating-point types will meet these requirements.
+      User-defined types that meet the requirements can also be used.
+    </p>
+<p>
+      For example, with <a class="link" href="high_precision/use_ntl.html" title="Using NTL Library">a thin
+      wrapper class</a> one of the types provided with <a href="http://shoup.net/ntl/" target="_top">NTL
+      (RR)</a> can be used. But now that Boost.Multiprecision
+      library is available, this has become the reference real number type.
+    </p>
+<p>
+      Submissions of binding to other extended precision types would also still be
+      welcome.
+    </p>
+<p>
+      The guiding principal behind these requirements is that a <span class="emphasis"><em>RealType</em></span>
+      behaves just like a built-in floating-point type.
+    </p>
+<h5>
+<a name="math_toolkit.concepts.h0"></a>
+      <span class="phrase"><a name="math_toolkit.concepts.basic_arithmetic_requirements"></a></span><a class="link" href="concepts.html#math_toolkit.concepts.basic_arithmetic_requirements">Basic
+      Arithmetic Requirements</a>
+    </h5>
+<p>
+      These requirements are common to all of the functions in this library.
+    </p>
+<p>
+      In the following table <span class="emphasis"><em>r</em></span> is an object of type <code class="computeroutput"><span class="identifier">RealType</span></code>, <span class="emphasis"><em>cr</em></span> and <span class="emphasis"><em>cr2</em></span>
+      are objects of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">RealType</span></code>,
+      and <span class="emphasis"><em>ca</em></span> is an object of type <code class="computeroutput"><span class="keyword">const</span>
+      <span class="identifier">arithmetic</span><span class="special">-</span><span class="identifier">type</span></code> (arithmetic types include all the built
+      in integers and floating point types).
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Expression
+              </p>
+            </th>
+<th>
+              <p>
+                Result Type
+              </p>
+            </th>
+<th>
+              <p>
+                Notes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">RealType</span><span class="special">(</span><span class="identifier">cr</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                RealType is copy constructible.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">RealType</span><span class="special">(</span><span class="identifier">ca</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                RealType is copy constructible from the arithmetic types.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Assignment operator.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Assignment operator from the arithmetic types.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">+=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Adds cr to r.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">+=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Adds ar to r.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">-=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Subtracts cr from r.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">-=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Subtracts ca from r.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">*=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Multiplies r by cr.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">*=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Multiplies r by ca.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">/=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Divides r by cr.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">r</span> <span class="special">/=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Divides r by ca.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="special">-</span><span class="identifier">r</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Unary Negation.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="special">+</span><span class="identifier">r</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType&
+              </p>
+            </td>
+<td>
+              <p>
+                Identity Operation.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">+</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Addition
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">+</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Addition
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">+</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Addition
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">-</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">-</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">-</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">*</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Multiplication
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">*</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Multiplication
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">*</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Multiplication
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">/</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">/</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">/</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Binary Subtraction
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">==</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Equality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">==</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Equality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">==</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Equality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">!=</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Inequality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">!=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Inequality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">!=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Inequality Comparison
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special"><=</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special"><=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special"><=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">>=</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">>=</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">>=</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than equal to.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special"><</span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special"><</span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special"><</span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Less than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">></span>
+                <span class="identifier">cr2</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cr</span> <span class="special">></span>
+                <span class="identifier">ca</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ca</span> <span class="special">></span>
+                <span class="identifier">cr</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                bool
+              </p>
+            </td>
+<td>
+              <p>
+                Greater than comparison.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">digits</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                int
+              </p>
+            </td>
+<td>
+              <p>
+                The number of digits in the significand of RealType.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">max_value</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The largest representable number by type RealType.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">min_value</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The smallest representable number by type RealType.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">log_max_value</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The natural logarithm of the largest representable number by type
+                RealType.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">log_min_value</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The natural logarithm of the smallest representable number by type
+                RealType.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">epsilon</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>()</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The machine epsilon of RealType.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      Note that:
+    </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          The functions <code class="computeroutput"><span class="identifier">log_max_value</span></code>
+          and <code class="computeroutput"><span class="identifier">log_min_value</span></code> can be
+          synthesised from the others, and so no explicit specialisation is required.
+        </li>
+<li class="listitem">
+          The function <code class="computeroutput"><span class="identifier">epsilon</span></code> can
+          be synthesised from the others, so no explicit specialisation is required
+          provided the precision of RealType does not vary at runtime (see the header
+          boost/math/bindings/rr.hpp
+          for an example where the precision does vary at runtime).
+        </li>
+<li class="listitem">
+          The functions <code class="computeroutput"><span class="identifier">digits</span></code>,
+          <code class="computeroutput"><span class="identifier">max_value</span></code> and <code class="computeroutput"><span class="identifier">min_value</span></code>, all get synthesised automatically
+          from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>. However, if <code class="computeroutput"><span class="identifier">numeric_limits</span></code> is not specialised for
+          type RealType, then you will get a compiler error when code tries to use
+          these functions, <span class="emphasis"><em>unless</em></span> you explicitly specialise
+          them. For example if the precision of RealType varies at runtime, then
+          <code class="computeroutput"><span class="identifier">numeric_limits</span></code> support
+          may not be appropriate, see boost/math/bindings/rr.hpp
+          for examples.
+        </li>
+</ol></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+        If <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><></span></code>
+        is <span class="bold"><strong>not specialized</strong></span> for type <span class="emphasis"><em>RealType</em></span>
+        then the default float precision of 6 decimal digits will be used by other
+        Boost programs including:
+      </p>
+<p>
+        Boost.Test: giving misleading error messages like
+      </p>
+<p>
+        <span class="emphasis"><em>"difference between {9.79796} and {9.79796} exceeds 5.42101e-19%".</em></span>
+      </p>
+<p>
+        Boost.LexicalCast and Boost.Serialization when converting the number to a
+        string, causing potentially serious loss of accuracy on output.
+      </p>
+<p>
+        Although it might seem obvious that RealType should require <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
+        to be specialized, this is not sensible for <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> and
+        similar classes where the number of digits is a runtime parameter (where
+        as for <code class="computeroutput"><span class="identifier">numeric_limits</span></code> it
+        has to be fixed at compile time).
+      </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.concepts.h1"></a>
+      <span class="phrase"><a name="math_toolkit.concepts.standard_library_support_require"></a></span><a class="link" href="concepts.html#math_toolkit.concepts.standard_library_support_require">Standard Library
+      Support Requirements</a>
+    </h5>
+<p>
+      Many (though not all) of the functions in this library make calls to standard
+      library functions, the following table summarises the requirements. Note that
+      most of the functions in this library will only call a small subset of the
+      functions listed here, so if in doubt whether a user defined type has enough
+      standard library support to be useable the best advise is to try it and see!
+    </p>
+<p>
+      In the following table <span class="emphasis"><em>r</em></span> is an object of type <code class="computeroutput"><span class="identifier">RealType</span></code>, <span class="emphasis"><em>cr1</em></span> and <span class="emphasis"><em>cr2</em></span>
+      are objects of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">RealType</span></code>,
+      and <span class="emphasis"><em>i</em></span> is an object of type <code class="computeroutput"><span class="keyword">int</span></code>.
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Expression
+              </p>
+            </th>
+<th>
+              <p>
+                Result Type
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">exp</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">pow</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">,</span>
+                <span class="identifier">cr2</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">frexp</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">,</span>
+                <span class="special">&</span><span class="identifier">i</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">ldexp</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">,</span>
+                <span class="identifier">i</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">cos</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">sin</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">asin</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">tan</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">atan</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">fmod</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">round</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">iround</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                int
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">trunc</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">itrunc</span><span class="special">(</span><span class="identifier">cr1</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                int
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      Note that the table above lists only those standard library functions known
+      to be used (or likely to be used in the near future) by this library. The following
+      functions: <code class="computeroutput"><span class="identifier">acos</span></code>, <code class="computeroutput"><span class="identifier">atan2</span></code>, <code class="computeroutput"><span class="identifier">fmod</span></code>,
+      <code class="computeroutput"><span class="identifier">cosh</span></code>, <code class="computeroutput"><span class="identifier">sinh</span></code>,
+      <code class="computeroutput"><span class="identifier">tanh</span></code>, <code class="computeroutput"><span class="identifier">log10</span></code>,
+      <code class="computeroutput"><span class="identifier">lround</span></code>, <code class="computeroutput"><span class="identifier">llround</span></code>,
+      <code class="computeroutput"><span class="identifier">ltrunc</span></code>, <code class="computeroutput"><span class="identifier">lltrunc</span></code>
+      and <code class="computeroutput"><span class="identifier">modf</span></code> are not currently
+      used, but may be if further special functions are added.
+    </p>
+<p>
+      Note that the <code class="computeroutput"><span class="identifier">round</span></code>, <code class="computeroutput"><span class="identifier">trunc</span></code> and <code class="computeroutput"><span class="identifier">modf</span></code>
+      functions are not part of the current C++ standard: they are part of the additions
+      added to C99 which will likely be in the next C++ standard. There are Boost
+      versions of these provided as a backup, and the functions are always called
+      unqualified so that argument-dependent-lookup can take place.
+    </p>
+<p>
+      In addition, for efficient and accurate results, a <a class="link" href="lanczos.html" title="The Lanczos Approximation">Lanczos
+      approximation</a> is highly desirable. You may be able to adapt an existing
+      approximation from boost/math/special_functions/lanczos.hpp
+      or boost/math/bindings/detail/big_lanczos.hpp:
+      in the former case you will need change static_cast's to lexical_cast's, and
+      the constants to <span class="emphasis"><em>strings</em></span> (in order to ensure the coefficients
+      aren't truncated to long double) and then specialise <code class="computeroutput"><span class="identifier">lanczos_traits</span></code>
+      for type T. Otherwise you may have to hack libs/math/tools/lanczos_generator.cpp
+      to find a suitable approximation for your RealType. The code will still compile
+      if you don't do this, but both accuracy and efficiency will be greatly compromised
+      in any function that makes use of the gamma/beta/erf family of functions.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="high_precision/using_test.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dist_concept.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/config_macros.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/config_macros.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,398 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Configuration Macros</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="compilers_overview.html" title="Compilers">
+<link rel="next" href="pol_overview.html" title="Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="compilers_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_config_macros">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.config_macros"></a><a class="link" href="config_macros.html" title="Configuration Macros">Configuration Macros</a>
+</h2></div></div></div>
+<p>
+      Almost all configuration details are set up automatically by <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">\</span><span class="identifier">math</span><span class="special">\</span><span class="identifier">tools</span><span class="special">\</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
+    </p>
+<p>
+      In normal use, only policy configuration macros are likely to be used. See
+      <a class="link" href="pol_ref.html" title="Policy Reference">policy reference</a>.
+    </p>
+<p>
+      For reference, information on Boost.Math macros used internally are described
+      briefly below.
+    </p>
+<div class="table">
+<a name="math_toolkit.config_macros.boost_math_macros"></a><p class="title"><b>Table 1.11. Boost.Math Macros</b></p>
+<div class="table-contents"><table class="table" summary="Boost.Math Macros">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                MACRO
+              </p>
+            </th>
+<th>
+              <p>
+                Notes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_NO_REAL_CONCEPT_TESTS</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Do not try to use real concept tests (hardware or software does not
+                support real_concept type).
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Do not produce or use long double functions: this macro gets set
+                when the platform's long double or standard library long double support
+                is absent or buggy.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_CONTROL_FP</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Controls FP hardware exceptions - our tests don't support hardware
+                exceptions on MSVC. May get set to something like: <code class="computeroutput"> <span class="identifier">_control87</span><span class="special">(</span><span class="identifier">MCW_EM</span><span class="special">,</span><span class="identifier">MCW_EM</span><span class="special">)</span></code>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                This macro is used by our test cases, it is set when an assignment
+                of a function template to a function pointer requires explicit template
+                arguments to be provided on the function name.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_USE_C99</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Use C99 math functions.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                define if no native (or buggy) <code class="computeroutput"><span class="identifier">fpclassify</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">)</span></code>
+                even though the other C99 functions are present.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Workaround helper macro for broken compilers - composed from other
+                Boost.Config macros, do not edit.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Workaround helper macro for broken compilers - composed from other
+                Boost.Config macros, do not edit.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Workaround helper macro for broken compilers - composed from other
+                Boost.Config macros, do not edit.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Workaround helper macro for broken compilers - composed from other
+                Boost.Config macros, do not edit.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_SMALL_CONSTANT</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Helper macro used in our test cases to set underflowing constants
+                set to zero if this would cause compiler issues.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Set if constants too large for a float, will cause "bad"
+                values to be stored in the data, rather than infinity or a suitably
+                large value.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_STD_USING</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Provides <code class="computeroutput"><span class="keyword">using</span></code> statements
+                for many std:: (abs to sqrt) and boost::math (rounds, modf) functions.
+                This allows these functions to be called unqualified so that if
+                <a href="http://en.wikipedia.org/wiki/Argument-dependent_name_lookup" target="_top">argument-dependent
+                Argument Dependent Lookup</a> fails to find a suitable overload,
+                then the std:: versions will also be considered.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_FPU_EXCEPTION_GUARD</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Used at the entrypoint to each special function to reset all FPU
+                exception flags prior to internal calculations, and then merge the
+                old and new exception flags on function exit. Used as a workaround
+                on platforms or hardware that behave strangely if any FPU exception
+                flags are set when calling standard library functions.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Define to output diagnostics for math functions. This is rather 'global'
+                to Boost.Math and so coarse-grained that it will probably produce
+                copious output! (Especially because full precision values are output).
+                Designed primarily for internal use and development.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT_CODE</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Output selected named variable, for example <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT_CODE</span><span class="special">(</span><span class="string">"guess = "</span>
+                <span class="special"><<</span> <span class="identifier">guess</span><span class="special">)</span></code>; Used by <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT_VARIABLE</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Output selected variable, for example <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT_VARIABLE</span><span class="special">(</span><span class="identifier">result</span><span class="special">);</span></code> Used by <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INSTRUMENT_FPU</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Output the state of the FPU's control flags.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.config_macros.boost_math_tuning"></a><p class="title"><b>Table 1.12. Boost.Math Tuning</b></p>
+<div class="table-contents"><table class="table" summary="Boost.Math Tuning">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Macros for Tuning performance options for specific compilers
+              </p>
+            </th>
+<th>
+              <p>
+                Notes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_POLY_METHOD</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                See the <a class="link" href="tuning.html" title="Performance Tuning Macros">performance tuning section</a>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_RATIONAL_METHOD</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                See the <a class="link" href="tuning.html" title="Performance Tuning Macros">performance tuning section</a>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                See the <a class="link" href="tuning.html" title="Performance Tuning Macros">performance tuning section</a>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INT_TABLE_TYPE</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                See the <a class="link" href="tuning.html" title="Performance Tuning Macros">performance tuning section</a>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="computeroutput"><span class="identifier">BOOST_MATH_INT_VALUE_SUFFIX</span></code>
+              </p>
+            </td>
+<td>
+              <p>
+                Helper macro for appending the correct suffix to integer constants
+                which may actually be stored as reals depending on the value of BOOST_MATH_INT_TABLE_TYPE.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compilers_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/constants.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/constants.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1480 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Mathematical Constants</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="prev" href="tutorial/user_def.html" title="Use With User-Defined Types">
+<link rel="next" href="new_const.html" title="Defining New Constants">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial/user_def.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="new_const.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_constants">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.constants"></a><a class="link" href="constants.html" title="The Mathematical Constants">The Mathematical Constants</a>
+</h2></div></div></div>
+<p>
+      This section lists the mathematical constants, their use(s) (and sometimes
+      rationale for their inclusion).
+    </p>
+<div class="table">
+<a name="math_toolkit.constants.mathematical_constants"></a><p class="title"><b>Table 6.1. Mathematical Constants</b></p>
+<div class="table-contents"><table class="table" summary="Mathematical Constants">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                name
+              </p>
+            </th>
+<th>
+              <p>
+                formula
+              </p>
+            </th>
+<th>
+              <p>
+                Value (6 decimals)
+              </p>
+            </th>
+<th>
+              <p>
+                Uses and Rationale
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Rational fractions</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                half
+              </p>
+            </td>
+<td>
+              <p>
+                1/2
+              </p>
+            </td>
+<td>
+              <p>
+                0.5
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                third
+              </p>
+            </td>
+<td>
+              <p>
+                1/3
+              </p>
+            </td>
+<td>
+              <p>
+                0.333333
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                two_thirds
+              </p>
+            </td>
+<td>
+              <p>
+                2/3
+              </p>
+            </td>
+<td>
+              <p>
+                0.66667
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                three_quarters
+              </p>
+            </td>
+<td>
+              <p>
+                3/4
+              </p>
+            </td>
+<td>
+              <p>
+                0.75
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>two and related</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_two
+              </p>
+            </td>
+<td>
+              <p>
+                √2
+              </p>
+            </td>
+<td>
+              <p>
+                1.41421
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_three
+              </p>
+            </td>
+<td>
+              <p>
+                √3
+              </p>
+            </td>
+<td>
+              <p>
+                1.73205
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                half_root_two
+              </p>
+            </td>
+<td>
+              <p>
+                √2 /2
+              </p>
+            </td>
+<td>
+              <p>
+                0.707106
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ln_two
+              </p>
+            </td>
+<td>
+              <p>
+                ln(2)
+              </p>
+            </td>
+<td>
+              <p>
+                0.693147
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ln_ten
+              </p>
+            </td>
+<td>
+              <p>
+                ln(10)
+              </p>
+            </td>
+<td>
+              <p>
+                2.30258
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ln_ln_two
+              </p>
+            </td>
+<td>
+              <p>
+                ln(ln(2))
+              </p>
+            </td>
+<td>
+              <p>
+                -0.366512
+              </p>
+            </td>
+<td>
+              <p>
+                Gumbel distribution median
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_ln_four
+              </p>
+            </td>
+<td>
+              <p>
+                √ln(4)
+              </p>
+            </td>
+<td>
+              <p>
+                1.177410
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_root_two
+              </p>
+            </td>
+<td>
+              <p>
+                1/√2
+              </p>
+            </td>
+<td>
+              <p>
+                0.707106
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>π and related</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi
+              </p>
+            </td>
+<td>
+              <p>
+                pi
+              </p>
+            </td>
+<td>
+              <p>
+                3.14159
+              </p>
+            </td>
+<td>
+              <p>
+                Ubiquitous. Archimedes constant π
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                half_pi
+              </p>
+            </td>
+<td>
+              <p>
+                π/2
+              </p>
+            </td>
+<td>
+              <p>
+                1.570796
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                third_pi
+              </p>
+            </td>
+<td>
+              <p>
+                π/3
+              </p>
+            </td>
+<td>
+              <p>
+                1.04719
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                sixth_pi
+              </p>
+            </td>
+<td>
+              <p>
+                π/6
+              </p>
+            </td>
+<td>
+              <p>
+                0.523598
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                two_pi
+              </p>
+            </td>
+<td>
+              <p>
+                2π
+              </p>
+            </td>
+<td>
+              <p>
+                6.28318
+              </p>
+            </td>
+<td>
+              <p>
+                Many uses, most simply, circumference of a circle
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                two_thirds_pi
+              </p>
+            </td>
+<td>
+              <p>
+                2/3 π
+              </p>
+            </td>
+<td>
+              <p>
+                2.09439
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Sphere#Volume_of_a_sphere" target="_top">volume
+                of a hemi-sphere</a> = 4/3 π r³
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                three_quarters_pi
+              </p>
+            </td>
+<td>
+              <p>
+                3/4 π
+              </p>
+            </td>
+<td>
+              <p>
+                2.35619
+              </p>
+            </td>
+<td>
+              <p>
+                = 3/4 π r³
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                four_thirds_pi
+              </p>
+            </td>
+<td>
+              <p>
+                4/3 π
+              </p>
+            </td>
+<td>
+              <p>
+                4.18879
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Sphere#Volume_of_a_sphere" target="_top">volume
+                of a sphere</a> = 4/3 π r³
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_two_pi
+              </p>
+            </td>
+<td>
+              <p>
+                1/(2π)
+              </p>
+            </td>
+<td>
+              <p>
+                1.59155
+              </p>
+            </td>
+<td>
+              <p>
+                Widely used
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_pi
+              </p>
+            </td>
+<td>
+              <p>
+                √π
+              </p>
+            </td>
+<td>
+              <p>
+                1.77245
+              </p>
+            </td>
+<td>
+              <p>
+                Widely used
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_half_pi
+              </p>
+            </td>
+<td>
+              <p>
+                √ π/2
+              </p>
+            </td>
+<td>
+              <p>
+                1.25331
+              </p>
+            </td>
+<td>
+              <p>
+                Widely used
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_two_pi
+              </p>
+            </td>
+<td>
+              <p>
+                √ π*2
+              </p>
+            </td>
+<td>
+              <p>
+                2.50662
+              </p>
+            </td>
+<td>
+              <p>
+                Widely used
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_root_pi
+              </p>
+            </td>
+<td>
+              <p>
+                1/√π
+              </p>
+            </td>
+<td>
+              <p>
+                0.564189
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_root_two_pi
+              </p>
+            </td>
+<td>
+              <p>
+                1/√(2π)
+              </p>
+            </td>
+<td>
+              <p>
+                0.398942
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_one_div_pi
+              </p>
+            </td>
+<td>
+              <p>
+                √(1/π
+              </p>
+            </td>
+<td>
+              <p>
+                0.564189
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi_minus_three
+              </p>
+            </td>
+<td>
+              <p>
+                π-3
+              </p>
+            </td>
+<td>
+              <p>
+                1.41593
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                four_minus_pi
+              </p>
+            </td>
+<td>
+              <p>
+                4 -π
+              </p>
+            </td>
+<td>
+              <p>
+                0.858407
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pow23_four_minus_pi
+              </p>
+            </td>
+<td>
+              <p>
+                4<sup>2/3</sup> - π
+              </p>
+            </td>
+<td>
+              <p>
+                0.795316
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi_pow_e
+              </p>
+            </td>
+<td>
+              <p>
+                π<sup>e</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                22.4591
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi_sqr
+              </p>
+            </td>
+<td>
+              <p>
+                π<sup>2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                9.86960
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi_sqr_div_six
+              </p>
+            </td>
+<td>
+              <p>
+                π<sup>2</sup>/6
+              </p>
+            </td>
+<td>
+              <p>
+                1.64493
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pi_cubed
+              </p>
+            </td>
+<td>
+              <p>
+                π<sup>3</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                31.00627
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                cbrt_pi
+              </p>
+            </td>
+<td>
+              <p>
+                √<sup>3</sup> π
+              </p>
+            </td>
+<td>
+              <p>
+                1.46459
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_cbrt_pi
+              </p>
+            </td>
+<td>
+              <p>
+                1/√<sup>3</sup> π
+              </p>
+            </td>
+<td>
+              <p>
+                0.682784
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Euler's e and related</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                e
+              </p>
+            </td>
+<td>
+              <p>
+                e
+              </p>
+            </td>
+<td>
+              <p>
+                2.71828
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/E_(mathematical_constant)" target="_top">Euler's
+                constant e</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                exp_minus_half
+              </p>
+            </td>
+<td>
+              <p>
+                e <sup>-1/2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                0.606530
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                e_pow_pi
+              </p>
+            </td>
+<td>
+              <p>
+                e <sup>π</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                23.14069
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                root_e
+              </p>
+            </td>
+<td>
+              <p>
+                √ e
+              </p>
+            </td>
+<td>
+              <p>
+                1.64872
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                log10_e
+              </p>
+            </td>
+<td>
+              <p>
+                log10(e)
+              </p>
+            </td>
+<td>
+              <p>
+                0.434294
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_log10_e
+              </p>
+            </td>
+<td>
+              <p>
+                1/log10(e)
+              </p>
+            </td>
+<td>
+              <p>
+                2.30258
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Trigonometric</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                degree
+              </p>
+            </td>
+<td>
+              <p>
+                radians = π / 180
+              </p>
+            </td>
+<td>
+              <p>
+                0.017453
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                radian
+              </p>
+            </td>
+<td>
+              <p>
+                degrees = 180 / π
+              </p>
+            </td>
+<td>
+              <p>
+                57.2957
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                sin_one
+              </p>
+            </td>
+<td>
+              <p>
+                sin(1)
+              </p>
+            </td>
+<td>
+              <p>
+                0.841470
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                cos_one
+              </p>
+            </td>
+<td>
+              <p>
+                cos(1)
+              </p>
+            </td>
+<td>
+              <p>
+                0.54030
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                sinh_one
+              </p>
+            </td>
+<td>
+              <p>
+                sinh(1)
+              </p>
+            </td>
+<td>
+              <p>
+                1.17520
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                cosh_one
+              </p>
+            </td>
+<td>
+              <p>
+                cosh(1)
+              </p>
+            </td>
+<td>
+              <p>
+                1.54308
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Phi</strong></span>
+              </p>
+            </td>
+<td>
+              <p>
+                Phidias golden ratio
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Golden_ratio" target="_top">Phidias golden
+                ratio</a>
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                phi
+              </p>
+            </td>
+<td>
+              <p>
+                (1 + √5) /2
+              </p>
+            </td>
+<td>
+              <p>
+                1.61803
+              </p>
+            </td>
+<td>
+              <p>
+                finance
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ln_phi
+              </p>
+            </td>
+<td>
+              <p>
+                ln(φ)
+              </p>
+            </td>
+<td>
+              <p>
+                0.48121
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_ln_phi
+              </p>
+            </td>
+<td>
+              <p>
+                1/ln(φ)
+              </p>
+            </td>
+<td>
+              <p>
+                2.07808
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Euler's Gamma</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                euler
+              </p>
+            </td>
+<td>
+              <p>
+                euler
+              </p>
+            </td>
+<td>
+              <p>
+                0.577215
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Euler%E2%80%93Mascheroni_constant" target="_top">Euler-Mascheroni
+                gamma constant</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                one_div_euler
+              </p>
+            </td>
+<td>
+              <p>
+                1/euler
+              </p>
+            </td>
+<td>
+              <p>
+                1.73245
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                euler_sqr
+              </p>
+            </td>
+<td>
+              <p>
+                euler<sup>2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                0.333177
+              </p>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <span class="bold"><strong>Misc</strong></span>
+              </p>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+<td>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                zeta_two
+              </p>
+            </td>
+<td>
+              <p>
+                ζ(2)
+              </p>
+            </td>
+<td>
+              <p>
+                1.64493
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Riemann_zeta_function" target="_top">Riemann
+                zeta function</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                zeta_three
+              </p>
+            </td>
+<td>
+              <p>
+                ζ(3)
+              </p>
+            </td>
+<td>
+              <p>
+                1.20205
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Riemann_zeta_function" target="_top">Riemann
+                zeta function</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                catalan
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="emphasis"><em>K</em></span>
+              </p>
+            </td>
+<td>
+              <p>
+                0.915965
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://mathworld.wolfram.com/CatalansConstant.html" target="_top">Catalan
+                (or Glaisher) combinatorial constant</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                glaisher
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="emphasis"><em>A</em></span>
+              </p>
+            </td>
+<td>
+              <p>
+                1.28242
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="https://oeis.org/A074962/constant" target="_top">Decimal expansion
+                of Glaisher-Kinkelin constant</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                khinchin
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="emphasis"><em>k</em></span>
+              </p>
+            </td>
+<td>
+              <p>
+                2.685452
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="https://oeis.org/A002210/constant" target="_top">Decimal expansion
+                of Khinchin constant</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                extreme_value_skewness
+              </p>
+            </td>
+<td>
+              <p>
+                12√6 ζ(3)/ π<sup>3</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                1.139547
+              </p>
+            </td>
+<td>
+              <p>
+                Extreme value distribution
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                rayleigh_skewness
+              </p>
+            </td>
+<td>
+              <p>
+                2√π(π-3)/(4 - π)<sup>3/2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                0.631110
+              </p>
+            </td>
+<td>
+              <p>
+                Rayleigh distribution skewness
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                rayleigh_kurtosis_excess
+              </p>
+            </td>
+<td>
+              <p>
+                -(6π<sup>2</sup>-24π+16)/(4-π)<sup>2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                0.245089
+              </p>
+            </td>
+<td>
+              <p>
+                <a href="http://en.wikipedia.org/wiki/Rayleigh_distribution" target="_top">Rayleigh
+                distribution kurtosis excess</a>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                rayleigh_kurtosis
+              </p>
+            </td>
+<td>
+              <p>
+                3+(6π<sup>2</sup>-24π+16)/(4-π)<sup>2</sup>
+              </p>
+            </td>
+<td>
+              <p>
+                3.245089
+              </p>
+            </td>
+<td>
+              <p>
+                Rayleigh distribution kurtosis
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Integer values are <span class="bold"><strong>not included</strong></span> in this
+        list of math constants, however interesting, because they can be so easily
+        and exactly constructed, even for UDT, for example: <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">cpp_float</span><span class="special">>(</span><span class="number">42</span><span class="special">)</span></code>.
+      </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        If you know the approximate value of the constant, you can search for the
+        value to find Boost.Math chosen name in this table.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial/user_def.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="new_const.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/contact.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/contact.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Contact Info and Support</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="faq.html" title="Frequently Asked Questions FAQ">
+<link rel="next" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../dist.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_contact">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.contact"></a><a class="link" href="contact.html" title="Contact Info and Support">Contact Info and Support</a>
+</h2></div></div></div>
+<p>
+      The main support for this library is via the Boost mailing lists:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Use the <a href="http://www.boost.org/more/mailing_lists.htm#users" target="_top">boost-user
+          list</a> for general support questions.
+        </li>
+<li class="listitem">
+          Use the <a href="http://www.boost.org/more/mailing_lists.htm#main" target="_top">boost-developer
+          list</a> for discussion about implementation and or submission of extensions.
+        </li>
+</ul></div>
+<p>
+      You can also find JM at john - at - johnmaddock.co.uk and PAB at pbristow -
+      at - hetp.u-net.com.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="faq.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../dist.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/conventions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/conventions.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Document Conventions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="navigation.html" title="Navigation">
+<link rel="next" href="hints.html" title="Other Hints and tips">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="navigation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="hints.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_conventions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
+</h2></div></div></div>
+<p>
+      <a class="indexterm" name="id852818"></a>
+    </p>
+<p>
+      This documentation aims to use of the following naming and formatting conventions.
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          C++ Code is in <code class="computeroutput"><span class="identifier">fixed</span> <span class="identifier">width</span>
+          <span class="identifier">font</span></code> and is syntax-highlighted
+          in color, for example <code class="computeroutput"><span class="keyword">double</span></code>.
+        </li>
+<li class="listitem">
+          Other code is in block <code class="literal">teletype fixed-width font</code>.
+        </li>
+<li class="listitem">
+          Replaceable text that <span class="bold"><strong>you</strong></span> will need to
+          supply is in <em class="replaceable"><code>italics</code></em>.
+        </li>
+<li class="listitem">
+          If a name refers to a free function, it is specified like this: <code class="computeroutput"><span class="identifier">free_function</span><span class="special">()</span></code>;
+          that is, it is in <em class="replaceable"><code>code font</code></em> and its name is
+          followed by <code class="computeroutput"><span class="special">()</span></code> to indicate
+          that it is a free function.
+        </li>
+<li class="listitem">
+          If a name refers to a class template, it is specified like this: <code class="computeroutput"><span class="identifier">class_template</span><span class="special"><></span></code>;
+          that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special"><></span></code>
+          to indicate that it is a class template.
+        </li>
+<li class="listitem">
+          If a name refers to a function-like macro, it is specified like this:
+          <code class="computeroutput"><span class="identifier">MACRO</span><span class="special">()</span></code>;
+          that is, it is uppercase in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code> to indicate that it is a function-like
+          macro. Object-like macros appear without the trailing <code class="computeroutput"><span class="special">()</span></code>.
+        </li>
+<li class="listitem">
+          Names that refer to <span class="emphasis"><em>concepts</em></span> in the generic programming
+          sense (like template parameter names) are specified in CamelCase.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="navigation.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="hints.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/create.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/create.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Creation Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="value_op.html" title="Quaternion Value Operations">
+<link rel="next" href="trans.html" title="Quaternion Transcendentals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="value_op.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="trans.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_create">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.create"></a><a class="link" href="create.html" title="Quaternion Creation Functions">Quaternion Creation Functions</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&a
mp;</span> <span class="identifier">phi2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">semipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="id
entifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="i
dentifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">cylindrospherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">radius</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">longitude</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span
 class="identifier">latitude</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">cylindrical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identi
fier">h2</span><span class="special">);</span>
+</pre>
+<p>
+      These build quaternions in a way similar to the way polar builds complex numbers,
+      as there is no strict equivalent to polar coordinates for quaternions.
+    </p>
+<p>
+      <a name="math_quaternions.creation_spherical"></a><code class="computeroutput"><span class="identifier">spherical</span></code>
+      is a simple transposition of <code class="computeroutput"><span class="identifier">polar</span></code>,
+      it takes as inputs a (positive) magnitude and a point on the hypersphere, given
+      by three angles. The first of these, <code class="computeroutput"><span class="identifier">theta</span></code>
+      has a natural range of <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span></code>
+      to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span></code>,
+      and the other two have natural ranges of <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code>
+      to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> (as is the
+      case with the usual spherical coordinates in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>).
+      Due to the many symmetries and periodicities, nothing untoward happens if the
+      magnitude is negative or the angles are outside their natural ranges. The expected
+      degeneracies (a magnitude of zero ignores the angles settings...) do happen
+      however.
+    </p>
+<p>
+      <a name="math_quaternions.creation_cylindrical"></a><code class="computeroutput"><span class="identifier">cylindrical</span></code>
+      is likewise a simple transposition of the usual cylindrical coordinates in
+      <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>, which in turn is another
+      derivative of planar polar coordinates. The first two inputs are the polar
+      coordinates of the first <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>
+      component of the quaternion. The third and fourth inputs are placed into the
+      third and fourth <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span> components
+      of the quaternion, respectively.
+    </p>
+<p>
+      <a name="math_quaternions.creation_multipolar"></a><code class="computeroutput"><span class="identifier">multipolar</span></code>
+      is yet another simple generalization of polar coordinates. This time, both
+      <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> components of the quaternion
+      are given in polar coordinates.
+    </p>
+<p>
+      <a name="math_quaternions.creation_cylindrospherical"></a><code class="computeroutput"><span class="identifier">cylindrospherical</span></code>
+      is specific to quaternions. It is often interesting to consider <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span> as the cartesian product of <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span> by <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+      (the quaternionic multiplication as then a special form, as given here). This
+      function therefore builds a quaternion from this representation, with the
+      <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span> component given in usual
+      <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span> spherical coordinates.
+    </p>
+<p>
+      <a name="math_quaternions.creation_semipolar"></a><code class="computeroutput"><span class="identifier">semipolar</span></code>
+      is another generator which is specific to quaternions. It takes as a first
+      input the magnitude of the quaternion, as a second input an angle in the range
+      <code class="computeroutput"><span class="number">0</span></code> to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code>
+      such that magnitudes of the first two <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>
+      components of the quaternion are the product of the first input and the sine
+      and cosine of this angle, respectively, and finally as third and fourth inputs
+      angles in the range <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> which represent the arguments of the first
+      and second <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> components
+      of the quaternion, respectively. As usual, nothing untoward happens if what
+      should be magnitudes are negative numbers or angles are out of their natural
+      ranges, as symmetries and periodicities kick in.
+    </p>
+<p>
+      In this version of our implementation of quaternions, there is no analogue
+      of the complex value operation <code class="computeroutput"><span class="identifier">arg</span></code>
+      as the situation is somewhat more complicated. Unit quaternions are linked
+      both to rotations in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+      and in <span class="emphasis"><em><span class="bold"><strong>R<sup>4</sup></strong></span></em></span>, and the correspondences
+      are not too complicated, but there is currently a lack of standard (de facto
+      or de jure) matrix library with which the conversions could work. This should
+      be remedied in a further revision. In the mean time, an example of how this
+      could be done is presented here for R3, and here for R4 (<a href="../../../../quaternion/HSO3SO4.cpp" target="_top">example
+      test file</a>).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="value_op.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="trans.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/credits.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/credits.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,150 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Credits and Acknowledgements</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Chapter 16. Library Status">
+<link rel="prev" href="issues.html" title="Known Issues, and TODO List">
+<link rel="next" href="../indexes.html" title="Chapter 17. Indexes">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="issues.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../indexes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_credits">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.credits"></a><a class="link" href="credits.html" title="Credits and Acknowledgements">Credits and Acknowledgements</a>
+</h2></div></div></div>
+<p>
+      Hubert Holin started the Boost.Math library. The inverse hyperbolic functions,
+      and the sinus cardinal functions are his.
+    </p>
+<p>
+      John Maddock started this library, the beta, gamma, erf, polynomial, and factorial
+      functions are his, as is the "Toolkit" section, and many of the statistical
+      distributions.
+    </p>
+<p>
+      Paul A. Bristow threw down the challenge in <a href="http://www2.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1668.pdf" target="_top">A
+      Proposal to add Mathematical Functions for Statistics to the C++ Standard Library</a>
+      to add the key math functions, especially those essential for statistics. After
+      JM accepted and solved the difficult problems, not only numerically, but in
+      full C++ template style, PAB implemented a few of the statistical distributions.
+      PAB also tirelessly proof-read everything that JM threw at him (so that all
+      remaining editorial mistakes are his fault).
+    </p>
+<p>
+      Xiaogang Zhang worked on the Bessel functions and elliptic integrals for his
+      Google Summer of Code project 2006.
+    </p>
+<p>
+      Bruno Lalande submitted the "compile time power of a runtime base"
+      code.
+    </p>
+<p>
+      Johan Råde wrote the optimised floating-point classification and manipulation
+      code, and nonfinite facets to permit C99 output of infinities and NaNs. (nonfinite
+      facets were not added until Boost 1.47 but had been in use with Boost.Spirit).
+      This library was based on a suggestion from Robert Ramey, author of Boost.Serialization.
+      Paul A. Bristow expressed the need for better handling of <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2022.pdf" target="_top">Input
+      & Output of NaN and infinity for the C++ Standard Library</a> and suggested
+      following the C99 format.
+    </p>
+<p>
+      Antony Polukhin improved lexical cast avoiding stringstream so that it was
+      no longer necessary to use a globale C99 facet to handle nonfinites.
+    </p>
+<p>
+      Håkan Ardö, Boris Gubenko, John Maddock, Markus Schöpflin and Olivier Verdier
+      tested the floating-point library and Martin Bonner, Peter Dimov and John Maddock
+      provided valuable advice.
+    </p>
+<p>
+      Gautam Sewani coded the logistic distribution as part of a Google Summer of
+      Code project 2008.
+    </p>
+<p>
+      M. A. (Thijs) van den Berg coded the Laplace distribution. (Thijs has also
+      threatened to implement some multivariate distributions).
+    </p>
+<p>
+      Thomas Mang requested the inverse gamma in chi squared distributions for Bayesian
+      applications and helped in their implementation, and provided a nice example
+      of their use.
+    </p>
+<p>
+      Professor Nico Temme for advice on the inverse incomplete beta function.
+    </p>
+<p>
+      Victor Shoup for NTL, without which
+      it would have much more difficult to produce high accuracy constants, and especially
+      the tables of accurate values for testing.
+    </p>
+<p>
+      We are grateful to Joel Guzman for helping us stress-test his Boost.Quickbook
+      program used to generate the html and pdf versions of this document, adding
+      several new features en route.
+    </p>
+<p>
+      Plots of the functions and distributions were prepared in W3C
+      standard Scalable Vector Graphic (SVG)
+      format using a program created by Jacob Voytko during a <a href="http://code.google.com/soc/2007/" target="_top">Google
+      Summer of Code (2007)</a>. From 2012, the latest versions of all Internet
+      Browsers have support for rendering SVG (with varying quality). Older versions,
+      especially (Microsoft Internet Explorer (before IE 9) lack native SVG support
+      but can be made to work with <a href="http://www.adobe.com/svg/viewer/install/" target="_top">Adobe's
+      free SVG viewer</a> plugin). The SVG files can be converted to JPEG or
+      PNG using Inkscape.
+    </p>
+<p>
+      We are also indebted to Matthias Schabel for managing the formal Boost-review
+      of this library, and to all the reviewers - including Guillaume Melquiond,
+      Arnaldur Gylfason, John Phillips, Stephan Tolksdorf and Jeff Garland - for
+      their many helpful comments.
+    </p>
+<p>
+      Thanks to Mark Coleman and Georgi Boshnakov for spot test values from Wolfram Mathematica,
+      and of course, to Eric Weisstein for nurturing <a href="http://mathworld.wolfram.com" target="_top">Wolfram
+      MathWorld</a>, an invaluable resource.
+    </p>
+<p>
+      The Skew-normal distribution and Owen's t function were written by Benjamin
+      Sobotta.
+    </p>
+<p>
+      We thank Thomas Mang for persuading us to allow t distributions to have infinite
+      degrees of freedom and contributing to some long discussions about how to improve
+      accuracy for large non-centrality and/or large degrees of freedom.
+    </p>
+<p>
+      Christopher Kormanyos wrote the e_float multiprecision library <a href="http://portal.acm.org/citation.cfm?id=1916469" target="_top">TOMS
+      Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function
+      Calculations</a> which formed the basis for the Boost.Multiprecision library
+      which now can be used to allow most functions and distributions to be computed
+      up to a precision of the users' choice, no longer restricted to built-in floating-point
+      types like double. (And thanks to Topher Cooper for bring Christopher's e_float
+      to our attention).
+    </p>
+<p>
+      Christopher Kormanyos wrote some examples for using Boost.Multiprecision,
+      and added methods for finding zeros of Bessel Functions.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="issues.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../indexes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/credits0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/credits0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Credits</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="history3.html" title="History">
+<link rel="next" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="history3.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../toolkit.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_credits0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.credits0"></a><a class="link" href="credits0.html" title="Credits">Credits</a>
+</h2></div></div></div>
+<p>
+      The author of the Boost compilation of GCD and LCM computations is Daryle Walker.
+      The code was prompted by existing code hiding in the implementations of Paul
+      Moore's rational library and Steve Cleary's pool library. The code had updates
+      by Helmut Zeisel.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history3.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../toolkit.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/demo.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/demo.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Demonstration Program</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="header1.html" title="Header <boost/math/common_factor.hpp>">
+<link rel="next" href="rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="header1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_demo">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.demo"></a><a class="link" href="demo.html" title="Demonstration Program">Demonstration Program</a>
+</h2></div></div></div>
+<p>
+      The program common_factor_test.cpp
+      is a demonstration of the results from instantiating various examples of the
+      run-time GCD and LCM function templates and the compile-time GCD and LCM class
+      templates. (The run-time GCD and LCM class templates are tested indirectly
+      through the run-time function templates.)
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="header1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/directories.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/directories.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,117 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Directory and File Structure</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="hints.html" title="Other Hints and tips">
+<link rel="next" href="namespaces.html" title="Namespaces">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="hints.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="namespaces.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_directories">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.directories"></a><a class="link" href="directories.html" title="Directory and File Structure">Directory and File Structure</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.directories.h0"></a>
+      <span class="phrase"><a name="math_toolkit.directories.boost_math"></a></span><a class="link" href="directories.html#math_toolkit.directories.boost_math">boost/math</a>
+    </h5>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">/concepts/</span></dt>
+<dd><p>
+            Prototype defining the <span class="bold"><strong>essential</strong></span> features
+            of a RealType class (see real_concept.hpp). Most applications will use
+            <code class="computeroutput"><span class="keyword">double</span></code> as the RealType (and
+            short <code class="computeroutput"><span class="keyword">typedef</span></code> names of distributions
+            are reserved for this type where possible), a few will use <code class="computeroutput"><span class="keyword">float</span></code> or <code class="computeroutput"><span class="keyword">long</span>
+            <span class="keyword">double</span></code>, but it is also possible
+            to use higher precision types like NTL::RR,
+            GNU Multiple Precision Arithmetic Library,
+            GNU MPFR library that conform
+            to the requirements specified by real_concept.
+          </p></dd>
+<dt><span class="term">/constants/</span></dt>
+<dd><p>
+            Templated definition of some highly accurate math constants (in constants.hpp).
+          </p></dd>
+<dt><span class="term">/distributions/</span></dt>
+<dd><p>
+            Distributions used in mathematics and, especially, statistics: Gaussian,
+            Students-t, Fisher, Binomial etc
+          </p></dd>
+<dt><span class="term">/policies/</span></dt>
+<dd><p>
+            Policy framework, for handling user requested behaviour modifications.
+          </p></dd>
+<dt><span class="term">/special_functions/</span></dt>
+<dd><p>
+            Math functions generally regarded as 'special', like beta, cbrt, erf,
+            gamma, lgamma, tgamma ... (Some of these are specified in C++, and C99/TR1,
+            and perhaps TR2).
+          </p></dd>
+<dt><span class="term">/tools/</span></dt>
+<dd><p>
+            Tools used by functions, like evaluating polynomials, continued fractions,
+            root finding, precision and limits, and by tests. Some will find application
+            outside this package.
+          </p></dd>
+</dl>
+</div>
+<h5>
+<a name="math_toolkit.directories.h1"></a>
+      <span class="phrase"><a name="math_toolkit.directories.boost_libs"></a></span><a class="link" href="directories.html#math_toolkit.directories.boost_libs">boost/libs</a>
+    </h5>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">/doc/</span></dt>
+<dd><p>
+            Documentation source files in Quickbook format processed into html and
+            pdf formats.
+          </p></dd>
+<dt><span class="term">/examples/</span></dt>
+<dd><p>
+            Examples and demos of using math functions and distributions.
+          </p></dd>
+<dt><span class="term">/performance/</span></dt>
+<dd><p>
+            Performance testing and tuning program.
+          </p></dd>
+<dt><span class="term">/test/</span></dt>
+<dd><p>
+            Test files, in many .cpp files, most using Boost.Test (some with test
+            data as .ipp files, usually generated using NTL RR type with ample precision
+            for the type, often for precisions suitable for up to 256-bit significand
+            real types).
+          </p></dd>
+<dt><span class="term">/tools/</span></dt>
+<dd><p>
+            Programs used to generate test data. Also changes to the NTL
+            released package to provide a few additional (and vital) extra features.
+          </p></dd>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hints.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="namespaces.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_concept.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_concept.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,387 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Conceptual Requirements for Distribution Types</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+<link rel="prev" href="concepts.html" title="Conceptual Requirements for Real Number Types">
+<link rel="next" href="archetypes.html" title="Conceptual Archetypes for Reals and Distributions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="archetypes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_concept">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.dist_concept"></a><a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Conceptual Requirements for
+    Distribution Types</a>
+</h2></div></div></div>
+<p>
+      A <span class="emphasis"><em>DistributionType</em></span> is a type that implements the following
+      conceptual requirements, and encapsulates a statistical distribution.
+    </p>
+<p>
+      Please note that this documentation should not be used as a substitute for
+      the <a class="link" href="dist_ref.html" title="Statistical Distributions Reference">reference documentation</a>, and
+      <a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">tutorial</a> of the statistical distributions.
+    </p>
+<p>
+      In the following table, <span class="emphasis"><em>d</em></span> is an object of type <code class="computeroutput"><span class="identifier">DistributionType</span></code>, <span class="emphasis"><em>cd</em></span>
+      is an object of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">DistributionType</span></code>
+      and <span class="emphasis"><em>cr</em></span> is an object of a type convertible to <code class="computeroutput"><span class="identifier">RealType</span></code>.
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Expression
+              </p>
+            </th>
+<th>
+              <p>
+                Result Type
+              </p>
+            </th>
+<th>
+              <p>
+                Notes
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                DistributionType::value_type
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The real-number type <span class="emphasis"><em>RealType</em></span> upon which the
+                distribution operates.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                DistributionType::policy_type
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                The <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> to use when evaluating functions
+                that depend on this distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                d = cd
+              </p>
+            </td>
+<td>
+              <p>
+                Distribution&
+              </p>
+            </td>
+<td>
+              <p>
+                Distribution types are assignable.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Distribution(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                Distribution
+              </p>
+            </td>
+<td>
+              <p>
+                Distribution types are copy constructible.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                pdf(cd, cr)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the PDF of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                cdf(cd, cr)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the CDF of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                cdf(complement(cd, cr))
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the complement of the CDF of the distribution, the same as:
+                <code class="computeroutput"><span class="number">1</span><span class="special">-</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">cd</span><span class="special">,</span> <span class="identifier">cr</span><span class="special">)</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                quantile(cd, cr)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the quantile (or percentile) of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                quantile(complement(cd, cr))
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the quantile (or percentile) of the distribution, starting
+                from the complement of the probability, the same as: <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">cd</span><span class="special">,</span> <span class="number">1</span><span class="special">-</span><span class="identifier">cr</span><span class="special">)</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                chf(cd, cr)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the cumulative hazard function of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                hazard(cd, cr)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the hazard function of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                kurtosis(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the kurtosis of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                kurtosis_excess(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the kurtosis excess of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                mean(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the mean of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                mode(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the mode of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                skewness(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the skewness of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                standard_deviation(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the standard deviation of the distribution.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                variance(cd)
+              </p>
+            </td>
+<td>
+              <p>
+                RealType
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the variance of the distribution.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="archetypes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Statistical Distributions Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">
+<link rel="prev" href="stat_tut/dist_params.html" title="Discrete Probability Distributions">
+<link rel="next" href="dist_ref/nmp.html" title="Non-Member Properties">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="stat_tut/dist_params.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dist_ref/nmp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.dist_ref"></a><a class="link" href="dist_ref.html" title="Statistical Distributions Reference">Statistical Distributions Reference</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Non-Member Properties</span></dt>
+<dt><span class="section">Distributions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="dist_ref/dists/bernoulli_dist.html">Bernoulli
+        Distribution</a></span></dt>
+<dt><span class="section">Beta Distribution</span></dt>
+<dt><span class="section"><a href="dist_ref/dists/binomial_dist.html">Binomial
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/cauchy_dist.html">Cauchy-Lorentz
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/chi_squared_dist.html">Chi Squared
+        Distribution</a></span></dt>
+<dt><span class="section">Exponential Distribution</span></dt>
+<dt><span class="section"><a href="dist_ref/dists/extreme_dist.html">Extreme Value
+        Distribution</a></span></dt>
+<dt><span class="section">F Distribution</span></dt>
+<dt><span class="section"><a href="dist_ref/dists/gamma_dist.html">Gamma (and
+        Erlang) Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/geometric_dist.html">Geometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/hypergeometric_dist.html">Hypergeometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/inverse_chi_squared_dist.html">Inverse
+        Chi Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/inverse_gamma_dist.html">Inverse
+        Gamma Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/inverse_gaussian_dist.html">Inverse
+        Gaussian (or Inverse Normal) Distribution</a></span></dt>
+<dt><span class="section">Laplace Distribution</span></dt>
+<dt><span class="section"><a href="dist_ref/dists/logistic_dist.html">Logistic
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/lognormal_dist.html">Log Normal
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/negative_binomial_dist.html">Negative
+        Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/nc_beta_dist.html">Noncentral
+        Beta Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/nc_chi_squared_dist.html">Noncentral
+        Chi-Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/nc_f_dist.html">Noncentral F
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/nc_t_dist.html">Noncentral T
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/normal_dist.html">Normal (Gaussian)
+        Distribution</a></span></dt>
+<dt><span class="section">Pareto Distribution</span></dt>
+<dt><span class="section">Poisson Distribution</span></dt>
+<dt><span class="section">Rayleigh Distribution</span></dt>
+<dt><span class="section"><a href="dist_ref/dists/skew_normal_dist.html">Skew
+        Normal Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/students_t_dist.html">Students
+        t Distribution</a></span></dt>
+<dt><span class="section"><a href="dist_ref/dists/triangular_dist.html">Triangular
+        Distribution</a></span></dt>
+<dt><span class="section">Uniform Distribution</span></dt>
+<dt><span class="section">Weibull Distribution</span></dt>
+</dl></dd>
+<dt><span class="section">Distribution Algorithms</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="stat_tut/dist_params.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dist_ref/nmp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dist_algorithms.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dist_algorithms.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,126 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Distribution Algorithms</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist_ref.html" title="Statistical Distributions Reference">
+<link rel="prev" href="dists/weibull_dist.html" title="Weibull Distribution">
+<link rel="next" href="../future.html" title="Extras/Future Directions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="dists/weibull_dist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../future.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dist_algorithms">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist_ref.dist_algorithms"></a><a class="link" href="dist_algorithms.html" title="Distribution Algorithms">Distribution Algorithms</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.dist_ref.dist_algorithms.h0"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.dist_algorithms.finding_the_location_and_scale_f"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist_ref.dist_algorithms.finding_the_location_and_scale_f">Finding
+        the Location and Scale for Normal and similar distributions</a>
+      </h5>
+<p>
+        Two functions aid finding location and scale of random variable z to give
+        probability p (given a scale or location). Only applies to distributions
+        like normal, lognormal, extreme value, Cauchy, (and symmetrical triangular),
+        that have scale and location properties.
+      </p>
+<p>
+        These functions are useful to predict the mean and/or standard deviation
+        that will be needed to meet a specified minimum weight or maximum dose.
+      </p>
+<p>
+        Complement versions are also provided, both with explicit and implicit (default)
+        policy.
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span> <span class="comment">// May be needed by users defining their own policies.</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span> <span class="comment">// Will be needed by users who want to use complements.</span>
+</pre>
+<h5>
+<a name="math_toolkit.dist_ref.dist_algorithms.h1"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.dist_algorithms.find_location_function"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist_ref.dist_algorithms.find_location_function">find_location
+        function</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span> <span class="comment">// explicit error handling policy</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_location</span><span class="special">(</span> <span class="comment">// For example, normal mean.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">z</span><span class="special">,</span> <span class="comment">// location of random variable z to give probability, P(X > z) == p.</span>
+  <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are > z</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// probability value desired at x, say 0.95 for 95% > z.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">scale</span><span class="special">,</span> <span class="comment">// scale parameter, for example, normal standard deviation.</span>
+  <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">></span>  <span class="comment">// with default policy.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_location</span><span class="special">(</span> <span class="comment">// For example, normal mean.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">z</span><span class="special">,</span> <span class="comment">// location of random variable z to give probability, P(X > z) == p.</span>
+  <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are > z</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// probability value desired at x, say 0.95 for 95% > z.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">scale</span><span class="special">);</span> <span class="comment">// scale parameter, for example, normal standard deviation.</span>
+
+  <span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.dist_ref.dist_algorithms.h2"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.dist_algorithms.find_scale_function"></a></span><a class="link" href="dist_algorithms.html#math_toolkit.dist_ref.dist_algorithms.find_scale_function">find_scale
+        function</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_scale</span><span class="special">(</span> <span class="comment">// For example, normal mean.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">z</span><span class="special">,</span> <span class="comment">// location of random variable z to give probability, P(X > z) == p.</span>
+  <span class="comment">// For example, a nominal minimum acceptable weight z, so that p * 100 % are > z</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// probability value desired at x, say 0.95 for 95% > z.</span>
+  <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">location</span><span class="special">,</span> <span class="comment">// location parameter, for example, normal distribution mean.</span>
+  <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">></span> <span class="comment">// with default policy.</span>
+   <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_scale</span><span class="special">(</span> <span class="comment">// For example, normal mean.</span>
+   <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">z</span><span class="special">,</span> <span class="comment">// location of random variable z to give probability, P(X > z) == p.</span>
+   <span class="comment">// For example, a nominal minimum acceptable z, so that p * 100 % are > z</span>
+   <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// probability value desired at x, say 0.95 for 95% > z.</span>
+   <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">location</span><span class="special">)</span> <span class="comment">// location parameter, for example, normal distribution mean.</span>
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        All argument must be finite, otherwise <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        is called.
+      </p>
+<p>
+        Probability arguments must be [0, 1], otherwise <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        is called.
+      </p>
+<p>
+        If the choice of arguments would give a negative scale, <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        is called, unless the policy is to ignore, when the negative (impossible)
+        value of scale is returned.
+      </p>
+<p>
+        <a class="link" href="../stat_tut/weg/find_eg.html" title="Find Location and Scale Examples">Find Mean and standard
+        deviation examples</a> gives simple examples of use of both find_scale
+        and find_location, and a longer example finding means and standard deviations
+        of normally distributed weights to meet a specification.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dists/weibull_dist.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../future.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Distributions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist_ref.html" title="Statistical Distributions Reference">
+<link rel="prev" href="nmp.html" title="Non-Member Properties">
+<link rel="next" href="dists/bernoulli_dist.html" title="Bernoulli Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nmp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dists/bernoulli_dist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist_ref.dists"></a><a class="link" href="dists.html" title="Distributions">Distributions</a>
+</h3></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="dists/bernoulli_dist.html">Bernoulli
+        Distribution</a></span></dt>
+<dt><span class="section">Beta Distribution</span></dt>
+<dt><span class="section"><a href="dists/binomial_dist.html">Binomial
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/cauchy_dist.html">Cauchy-Lorentz
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/chi_squared_dist.html">Chi Squared
+        Distribution</a></span></dt>
+<dt><span class="section">Exponential Distribution</span></dt>
+<dt><span class="section"><a href="dists/extreme_dist.html">Extreme Value
+        Distribution</a></span></dt>
+<dt><span class="section">F Distribution</span></dt>
+<dt><span class="section"><a href="dists/gamma_dist.html">Gamma (and
+        Erlang) Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/geometric_dist.html">Geometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/hypergeometric_dist.html">Hypergeometric
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/inverse_chi_squared_dist.html">Inverse
+        Chi Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/inverse_gamma_dist.html">Inverse
+        Gamma Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/inverse_gaussian_dist.html">Inverse
+        Gaussian (or Inverse Normal) Distribution</a></span></dt>
+<dt><span class="section">Laplace Distribution</span></dt>
+<dt><span class="section"><a href="dists/logistic_dist.html">Logistic
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/lognormal_dist.html">Log Normal
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/negative_binomial_dist.html">Negative
+        Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/nc_beta_dist.html">Noncentral
+        Beta Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/nc_chi_squared_dist.html">Noncentral
+        Chi-Squared Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/nc_f_dist.html">Noncentral F
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/nc_t_dist.html">Noncentral T
+        Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/normal_dist.html">Normal (Gaussian)
+        Distribution</a></span></dt>
+<dt><span class="section">Pareto Distribution</span></dt>
+<dt><span class="section">Poisson Distribution</span></dt>
+<dt><span class="section">Rayleigh Distribution</span></dt>
+<dt><span class="section"><a href="dists/skew_normal_dist.html">Skew
+        Normal Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/students_t_dist.html">Students
+        t Distribution</a></span></dt>
+<dt><span class="section"><a href="dists/triangular_dist.html">Triangular
+        Distribution</a></span></dt>
+<dt><span class="section">Uniform Distribution</span></dt>
+<dt><span class="section">Weibull Distribution</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nmp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dists/bernoulli_dist.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/bernoulli_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/bernoulli_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,346 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Bernoulli Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="../dists.html" title="Distributions">
+<link rel="next" href="beta_dist.html" title="Beta Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../dists.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="beta_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_bernoulli_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist"></a><a class="link" href="bernoulli_dist.html" title="Bernoulli Distribution">Bernoulli
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">bernoulli</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+           <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">bernoulli_distribution</span><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">bernoulli_distribution</span><span class="special"><></span> <span class="identifier">bernoulli</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">bernoulli_distribution</span>
+ <span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+    <span class="identifier">bernoulli_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// Constructor.</span>
+    <span class="comment">// Accessor function.</span>
+    <span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span>
+    <span class="comment">// Probability of success (as a fraction).</span>
+ <span class="special">};</span>
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The Bernoulli distribution is a discrete distribution of the outcome of
+          a single trial with only two results, 0 (failure) or 1 (success), with
+          a probability of success p.
+        </p>
+<p>
+          The Bernoulli distribution is the simplest building block on which other
+          discrete distributions of sequences of independent Bernoulli trials can
+          be based.
+        </p>
+<p>
+          The Bernoulli is the binomial distribution (k = 1, p) with only one trial.
+        </p>
+<p>
+          <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function pdf</a> f(0) = 1 - p, f(1) = p. <a href="http://en.wikipedia.org/wiki/Cumulative_Distribution_Function" target="_top">Cumulative
+          distribution function</a> D(k) = if (k == 0) 1 - p else 1.
+        </p>
+<p>
+          The following graph illustrates how the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function pdf</a> varies with the outcome of the single trial:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/bernoulli_pdf.png" align="middle"></span>
+        </p>
+<p>
+          and the <a href="http://en.wikipedia.org/wiki/Cumulative_Distribution_Function" target="_top">Cumulative
+          distribution function</a>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/bernoulli_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.bernoulli_dist.member_functions"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist_ref.dists.bernoulli_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">bernoulli_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/bernoulli_distribution" target="_top">bernoulli
+          distribution</a> with success_fraction <span class="emphasis"><em>p</em></span>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>success_fraction</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.bernoulli_dist.non_member_accessors"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist_ref.dists.bernoulli_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is 0 and 1, and the useful supported
+          range is only 0 or 1.
+        </p>
+<p>
+          Outside this range, functions are undefined, or may throw domain_error
+          exception and make an error message available.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.bernoulli_dist.accuracy"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist_ref.dists.bernoulli_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Bernoulli distribution is implemented with simple arithmetic operators
+          and so should have errors within an epsilon or two.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.bernoulli_dist.implementation"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist_ref.dists.bernoulli_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>p</em></span> is the probability of success
+          and <span class="emphasis"><em>q = 1-p</em></span>. <span class="emphasis"><em>k</em></span> is the random
+          variate, either 0 or 1.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The Bernoulli distribution is implemented here as a <span class="emphasis"><em>strict
+            discrete</em></span> distribution. If a generalised version, allowing
+            k to be any real, is required then the binomial distribution with a single
+            trial should be used, for example:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="number">1</span><span class="special">,</span>
+            <span class="number">0.25</span><span class="special">)</span></code>
+          </p>
+</td></tr>
+</table></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Supported range
+                  </p>
+                </td>
+<td>
+                  <p>
+                    {0, 1}
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = 1 - p for k = 0, else p
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: cdf = 1 - p for k = 0, else 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    q = 1 - p
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if x <= (1-p) 0 else 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if x <= (1-p) 1 else 0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    p
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    p * (1 - p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if (p < 0.5) 0 else 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (1 - 2 * p) / sqrt(p * q)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6 * p * p - 6 * p +1/ p * q
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    kurtosis -3
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.bernoulli_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.bernoulli_dist.references"></a></span><a class="link" href="bernoulli_dist.html#math_toolkit.dist_ref.dists.bernoulli_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Bernoulli_distribution" target="_top">Wikpedia
+              Bernoulli distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/BernoulliDistribution.html" target="_top">Weisstein,
+              Eric W. "Bernoulli Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../dists.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="beta_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/beta_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/beta_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,612 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Beta Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="bernoulli_dist.html" title="Bernoulli Distribution">
+<link rel="next" href="binomial_dist.html" title="Binomial Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bernoulli_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binomial_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_beta_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.beta_dist"></a><a class="link" href="beta_dist.html" title="Beta Distribution">Beta Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+           <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">beta_distribution</span><span class="special">;</span>
+
+<span class="comment">// typedef beta_distribution<double> beta;</span>
+<span class="comment">// Note that this is deliberately NOT provided,</span>
+<span class="comment">// to avoid a clash with the function name beta.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">beta_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Constructor from two shape parameters, alpha & beta:</span>
+   <span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">b</span><span class="special">);</span>
+
+   <span class="comment">// Parameter accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Parameter estimators of alpha or beta from mean and variance.</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+     <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
+     <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
+
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+     <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
+     <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
+
+   <span class="comment">// Parameter estimators from from</span>
+   <span class="comment">// either alpha or beta, and x and probability.</span>
+
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+     <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="comment">// from beta.</span>
+     <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">//  x.</span>
+     <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// cdf</span>
+
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+     <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="comment">// alpha.</span>
+     <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// probability x.</span>
+     <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf.</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The class type <code class="computeroutput"><span class="identifier">beta_distribution</span></code>
+          represents a <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">beta
+          </a> <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">probability
+          distribution function</a>.
+        </p>
+<p>
+          The <a href="http://mathworld.wolfram.com/BetaDistribution.htm" target="_top">beta
+          distribution </a> is used as a <a href="http://en.wikipedia.org/wiki/Prior_distribution" target="_top">prior
+          distribution</a> for binomial proportions in <a href="http://mathworld.wolfram.com/BayesianAnalysis.html" target="_top">Bayesian
+          analysis</a>.
+        </p>
+<p>
+          See also: <a href="http://documents.wolfram.com/calculationcenter/v2/Functions/ListsMatrices/Statistics/BetaDistribution.html" target="_top">beta
+          distribution</a> and <a href="http://en.wikipedia.org/wiki/Bayesian_statistics" target="_top">Bayesian
+          statistics</a>.
+        </p>
+<p>
+          How the beta distribution is used for <a href="http://home.uchicago.edu/~grynav/bayes/ABSLec5.ppt" target="_top">Bayesian
+          analysis of one parameter models</a> is discussed by Jeff Grynaviski.
+        </p>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function PDF</a> for the <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">beta
+          distribution</a> defined on the interval [0,1] is given by:
+        </p>
+<p>
+          f(x;α,β) = x<sup>α - 1</sup> (1 - x)<sup>β -1</sup> / B(α, β)
+        </p>
+<p>
+          where B(α, β) is the <a href="http://en.wikipedia.org/wiki/Beta_function" target="_top">beta
+          function</a>, implemented in this library as <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a>.
+          Division by the beta function ensures that the pdf is normalized to the
+          range zero to unity.
+        </p>
+<p>
+          The following graph illustrates examples of the pdf for various values
+          of the shape parameters. Note the α = β = 2 (blue line) is dome-shaped, and
+          might be approximated by a symmetrical triangular distribution.
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/beta_pdf.png" align="middle"></span>
+        </p>
+<p>
+          If α = β = 1, then it is a __space <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">uniform
+          distribution</a>, equal to unity in the entire interval x = 0 to 1.
+          If α __space and β __space are < 1, then the pdf is U-shaped. If α != β, then
+          the shape is asymmetric and could be approximated by a triangle whose apex
+          is away from the centre (where x = half).
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.member_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<h6>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.constructor"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.constructor">Constructor</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a beta distribution with shape parameters <span class="emphasis"><em>alpha</em></span>
+          and <span class="emphasis"><em>beta</em></span>.
+        </p>
+<p>
+          Requires alpha,beta > 0,otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is called. Note that technically the beta distribution is defined for alpha,beta
+          >= 0, but it's not clear whether any program can actually make use of
+          that latitude or how many of the non-member functions can be usefully defined
+          in that case. Therefore for now, we regard it as an error if alpha or beta
+          is zero.
+        </p>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special"><></span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a the beta distribution with alpha=2 and beta=5 (shown in yellow
+          in the graph above).
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.parameter_accessors"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.parameter_accessors">Parameter
+          Accessors</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>alpha</em></span> from which this distribution
+          was constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>beta</em></span> from which this distribution
+          was constructed.
+        </p>
+<p>
+          So for example:
+        </p>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special"><></span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">alpha</span><span class="special">()</span> <span class="special">==</span> <span class="number">2.</span><span class="special">);</span>  <span class="comment">// mybeta.alpha() returns 2</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">beta</span><span class="special">()</span> <span class="special">==</span> <span class="number">5.</span><span class="special">);</span>   <span class="comment">// mybeta.beta()  returns 5</span>
+</pre>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.parameter_estimators"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.parameter_estimators">Parameter
+          Estimators</a>
+        </h5>
+<p>
+          Two pairs of parameter estimators are provided.
+        </p>
+<p>
+          One estimates either α __space or β __space from presumed-known mean and variance.
+        </p>
+<p>
+          The other pair estimates either α __space or β __space from the cdf and x.
+        </p>
+<p>
+          It is also possible to estimate α __space and β __space from 'known' mode &
+          quantile. For example, calculators are provided by the <a href="http://www.ausvet.com.au/pprev/content.php?page=PPscript" target="_top">Pooled
+          Prevalence Calculator</a> and <a href="http://www.epi.ucdavis.edu/diagnostictests/betabuster.html" target="_top">Beta
+          Buster</a> but this is not yet implemented here.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
+  <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
+</pre>
+<p>
+          Returns the unique value of α   that corresponds to a beta distribution with
+          mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
+  <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
+</pre>
+<p>
+          Returns the unique value of β   that corresponds to a beta distribution with
+          mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="comment">// from beta.</span>
+  <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">//  x.</span>
+  <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf</span>
+</pre>
+<p>
+          Returns the value of α   that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="comment">// alpha.</span>
+  <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// probability x.</span>
+  <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf.</span>
+</pre>
+<p>
+          Returns the value of β   that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.non_member_accessor_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.non_member_accessor_functions">Non-member
+          Accessor Functions</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The formulae for calculating these are shown in the table below, and at
+          <a href="http://mathworld.wolfram.com/BetaDistribution.html" target="_top">Wolfram
+          Mathworld</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.applications"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.applications">Applications</a>
+        </h5>
+<p>
+          The beta distribution can be used to model events constrained to take place
+          within an interval defined by a minimum and maximum value: so it is used
+          in project management systems.
+        </p>
+<p>
+          It is also widely used in <a href="http://en.wikipedia.org/wiki/Bayesian_inference" target="_top">Bayesian
+          statistical inference</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h6"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.related_distributions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.related_distributions">Related
+          distributions</a>
+        </h5>
+<p>
+          The beta distribution with both α  __space and β = 1 follows a <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">uniform
+          distribution</a>.
+        </p>
+<p>
+          The triangular
+          is used when less precise information is available.
+        </p>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Binomial_distribution" target="_top">binomial
+          distribution</a> is closely related when α  __space and β  __space are integers.
+        </p>
+<p>
+          With integer values of α  __space and β  __space the distribution B(i, j) is
+          that of the j-th highest of a sample of i + j + 1 independent random variables
+          uniformly distributed between 0 and 1. The cumulative probability from
+          0 to x is thus the probability that the j-th highest value is less than
+          x. Or it is the probability that that at least i of the random variables
+          are less than x, a probability given by summing over the <a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a> with its p parameter set to x.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h7"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.accuracy"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          This distribution is implemented using the <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta
+          functions</a> <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a>
+          and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete beta
+          functions</a> <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+          and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>;
+          please refer to these functions for information on accuracy.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h8"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.implementation"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>
+          are the parameters α   and β, <span class="emphasis"><em>x</em></span> is the random variable,
+          <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    f(x;α,β) = x<sup>α - 1</sup> (1 - x)<sup>β -1</sup> / B(α, β)
+                  </p>
+                  <p>
+                    Implemented using <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>(a,
+                    b, x).
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the incomplete beta function <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(a,
+                    b, x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(a,
+                    b, x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the inverse incomplete beta function <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>(a,
+                    b, p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>(a,
+                    b, q)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">a</span><span class="special">/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">a</span> <span class="special">*</span>
+                    <span class="identifier">b</span> <span class="special">/</span>
+                    <span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)^</span><span class="number">2</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">+</span>
+                    <span class="identifier">b</span> <span class="special">+</span>
+                    <span class="number">1</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="special">(</span><span class="identifier">a</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="special">(</span><span class="identifier">a</span>
+                    <span class="special">+</span> <span class="identifier">b</span>
+                    <span class="special">-</span> <span class="number">2</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="number">2</span> <span class="special">(</span><span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span>
+                    <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">1</span><span class="special">)/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">2</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span>
+                    <span class="special">*</span> <span class="identifier">b</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/beta_dist_kurtosis.png"></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">kurtosis</span> <span class="special">+</span>
+                    <span class="number">3</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    parameter estimation
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    alpha
+                  </p>
+                  <p>
+                    from mean and variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">mean</span> <span class="special">*</span>
+                    <span class="special">((</span> <span class="special">(</span><span class="identifier">mean</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span> <span class="special">/</span>
+                    <span class="identifier">variance</span><span class="special">)-</span>
+                    <span class="number">1</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    beta
+                  </p>
+                  <p>
+                    from mean and variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">*</span>
+                    <span class="special">(((</span><span class="identifier">mean</span>
+                    <span class="special">*</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span>
+                    <span class="special">/</span><span class="identifier">variance</span><span class="special">)-</span><span class="number">1</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    The member functions <code class="computeroutput"><span class="identifier">find_alpha</span></code>
+                    and <code class="computeroutput"><span class="identifier">find_beta</span></code>
+                  </p>
+                  <p>
+                    from cdf and probability x
+                  </p>
+                  <p>
+                    and <span class="bold"><strong>either</strong></span> <code class="computeroutput"><span class="identifier">alpha</span></code>
+                    or <code class="computeroutput"><span class="identifier">beta</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Implemented in terms of the inverse incomplete beta functions
+                  </p>
+                  <p>
+                    <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+                    and <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+                    respectively.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_alpha</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">beta</span><span class="special">,</span>
+                    <span class="identifier">x</span><span class="special">,</span>
+                    <span class="identifier">probability</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_beta</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">,</span>
+                    <span class="identifier">x</span><span class="special">,</span>
+                    <span class="identifier">probability</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.beta_dist.h9"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.references"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.references">References</a>
+        </h5>
+<p>
+          <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">Wikipedia Beta
+          distribution</a>
+        </p>
+<p>
+          <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda366h.htm" target="_top">NIST
+          Exploratory Data Analysis</a>
+        </p>
+<p>
+          <a href="http://mathworld.wolfram.com/BetaDistribution.html" target="_top">Wolfram
+          MathWorld</a>
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bernoulli_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binomial_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/binomial_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/binomial_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,898 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binomial Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="beta_dist.html" title="Beta Distribution">
+<link rel="next" href="cauchy_dist.html" title="Cauchy-Lorentz Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="beta_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="cauchy_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_binomial_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.binomial_dist"></a><a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">binomial_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><></span> <span class="identifier">binomial</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">binomial_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="keyword">static</span> <span class="keyword">const</span> <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">clopper_pearson_exact_interval</span><span class="special">;</span>
+   <span class="keyword">static</span> <span class="keyword">const</span> <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">jeffreys_prior_interval</span><span class="special">;</span>
+
+   <span class="comment">// construct:</span>
+   <span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+
+   <span class="comment">// parameter access::</span>
+   <span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Bounds on success fraction:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">,</span>
+      <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">method</span> <span class="special">=</span> <span class="identifier">clopper_pearson_exact_interval</span><span class="special">);</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">,</span>
+      <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">method</span> <span class="special">=</span> <span class="identifier">clopper_pearson_exact_interval</span><span class="special">);</span>
+
+   <span class="comment">// estimate min/max number of trials:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of events</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction</span>
+      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// risk level</span>
+
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of events</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction</span>
+      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// risk level</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The class type <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>
+          represents a <a href="http://mathworld.wolfram.com/BinomialDistribution.html" target="_top">binomial
+          distribution</a>: it is used when there are exactly two mutually exclusive
+          outcomes of a trial. These outcomes are labelled "success" and
+          "failure". The <a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a> is used to obtain the probability of observing k successes
+          in N trials, with the probability of success on a single trial denoted
+          by p. The binomial distribution assumes that p is fixed for all trials.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            The random variable for the binomial distribution is the number of successes,
+            (the number of trials is a fixed property of the distribution) whereas
+            for the negative binomial, the random variable is the number of trials,
+            for a fixed number of successes.
+          </p></td></tr>
+</table></div>
+<p>
+          The PDF for the binomial distribution is given by:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/binomial_ref2.png"></span>
+        </p>
+<p>
+          The following two graphs illustrate how the PDF changes depending upon
+          the distributions parameters, first we'll keep the success fraction <span class="emphasis"><em>p</em></span>
+          fixed at 0.5, and vary the sample size:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/binomial_pdf_1.png" align="middle"></span>
+        </p>
+<p>
+          Alternatively, we can keep the sample size fixed at N=20 and vary the success
+          fraction <span class="emphasis"><em>p</em></span>:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/binomial_pdf_2.png" align="middle"></span>
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The Binomial distribution is a discrete distribution: internally, functions
+            like the <code class="computeroutput"><span class="identifier">cdf</span></code> and <code class="computeroutput"><span class="identifier">pdf</span></code> are treated "as if" they
+            are continuous functions, but in reality the results returned from these
+            functions only have meaning if an integer value is provided for the random
+            variate argument.
+          </p>
+<p>
+            The quantile function will by default return an integer result that has
+            been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower quantiles
+            (where the probability is less than 0.5) are rounded downward, and upper
+            quantiles (where the probability is greater than 0.5) are rounded upwards.
+            This behaviour ensures that if an X% quantile is requested, then <span class="emphasis"><em>at
+            least</em></span> the requested coverage will be present in the central
+            region, and <span class="emphasis"><em>no more than</em></span> the requested coverage
+            will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently, or even return a real-valued result using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on the Binomial distribution. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.member_functions"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.construct"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.construct">Construct</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          Constructor: <span class="emphasis"><em>n</em></span> is the total number of trials, <span class="emphasis"><em>p</em></span>
+          is the probability of success of a single trial.
+        </p>
+<p>
+          Requires <code class="computeroutput"><span class="number">0</span> <span class="special"><=</span>
+          <span class="identifier">p</span> <span class="special"><=</span>
+          <span class="number">1</span></code>, and <code class="computeroutput"><span class="identifier">n</span>
+          <span class="special">>=</span> <span class="number">0</span></code>,
+          otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.accessors"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.accessors">Accessors</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>p</em></span> from which this distribution
+          was constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>n</em></span> from which this distribution
+          was constructed.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fract"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fract">Lower
+          Bound on the Success Fraction</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+   <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">method</span> <span class="special">=</span> <span class="identifier">clopper_pearson_exact_interval</span><span class="special">);</span>
+</pre>
+<p>
+          Returns a lower bound on the success fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">trials</span></dt>
+<dd><p>
+                The total number of trials conducted.
+              </p></dd>
+<dt><span class="term">successes</span></dt>
+<dd><p>
+                The number of successes that occurred.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>less than</strong></span> the value
+                returned.
+              </p></dd>
+<dt><span class="term">method</span></dt>
+<dd><p>
+                An optional parameter that specifies the method to be used to compute
+                the interval (See below).
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> successes from <span class="emphasis"><em>n</em></span>
+          trials the best estimate for the success fraction is simply <span class="emphasis"><em>k/n</em></span>,
+          but if you want to be 95% sure that the true value is <span class="bold"><strong>greater
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>min</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+                    <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/binom_eg/binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">See worked
+          example.</a>
+        </p>
+<p>
+          There are currently two possible values available for the <span class="emphasis"><em>method</em></span>
+          optional parameter: <span class="emphasis"><em>clopper_pearson_exact_interval</em></span>
+          or <span class="emphasis"><em>jeffreys_prior_interval</em></span>. These constants are both
+          members of class template <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>,
+          so usage is for example:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+    <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">jeffreys_prior_interval</span><span class="special">);</span>
+</pre>
+<p>
+          The default method if this parameter is not specified is the Clopper Pearson
+          "exact" interval. This produces an interval that guarantees at
+          least <code class="computeroutput"><span class="number">100</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">)%</span></code> coverage, but which is known to be overly
+          conservative, sometimes producing intervals with much greater than the
+          requested coverage.
+        </p>
+<p>
+          The alternative calculation method produces a non-informative Jeffreys
+          Prior interval. It produces <code class="computeroutput"><span class="number">100</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">)%</span></code>
+          coverage only <span class="emphasis"><em>in the average case</em></span>, though is typically
+          very close to the requested coverage level. It is one of the main methods
+          of calculation recommended in the review by Brown, Cai and DasGupta.
+        </p>
+<p>
+          Please note that the "textbook" calculation method using a normal
+          approximation (the Wald interval) is deliberately not provided: it is known
+          to produce consistently poor results, even when the sample size is surprisingly
+          large. Refer to Brown, Cai and DasGupta for a full explanation. Many other
+          methods of calculation are available, and may be more appropriate for specific
+          situations. Unfortunately there appears to be no consensus amongst statisticians
+          as to which is "best": refer to the discussion at the end of
+          Brown, Cai and DasGupta for examples.
+        </p>
+<p>
+          The two methods provided here were chosen principally because they can
+          be used for both one and two sided intervals. See also:
+        </p>
+<p>
+          Lawrence D. Brown, T. Tony Cai and Anirban DasGupta (2001), Interval Estimation
+          for a Binomial Proportion, Statistical Science, Vol. 16, No. 2, 101-133.
+        </p>
+<p>
+          T. Tony Cai (2005), One-sided confidence intervals in discrete distributions,
+          Journal of Statistical Planning and Inference 131, 63-88.
+        </p>
+<p>
+          Agresti, A. and Coull, B. A. (1998). Approximate is better than "exact"
+          for interval estimation of binomial proportions. Amer. Statist. 52 119-126.
+        </p>
+<p>
+          Clopper, C. J. and Pearson, E. S. (1934). The use of confidence or fiducial
+          limits illustrated in the case of the binomial. Biometrika 26 404-413.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fract"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fract">Upper
+          Bound on the Success Fraction</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+   <span class="emphasis"><em>unspecified-type</em></span> <span class="identifier">method</span> <span class="special">=</span> <span class="identifier">clopper_pearson_exact_interval</span><span class="special">);</span>
+</pre>
+<p>
+          Returns an upper bound on the success fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">trials</span></dt>
+<dd><p>
+                The total number of trials conducted.
+              </p></dd>
+<dt><span class="term">successes</span></dt>
+<dd><p>
+                The number of successes that occurred.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>greater than</strong></span> the value
+                returned.
+              </p></dd>
+<dt><span class="term">method</span></dt>
+<dd><p>
+                An optional parameter that specifies the method to be used to compute
+                the interval. Refer to the documentation for <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+                above for the meaning of the method options.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> successes from <span class="emphasis"><em>n</em></span>
+          trials the best estimate for the success fraction is simply <span class="emphasis"><em>k/n</em></span>,
+          but if you want to be 95% sure that the true value is <span class="bold"><strong>less
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>max</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+                    <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/binom_eg/binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">See worked
+          example.</a>
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            In order to obtain a two sided bound on the success fraction, you call
+            both <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+            <span class="bold"><strong>and</strong></span> <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+            each with the same arguments.
+          </p>
+<p>
+            If the desired risk level that the true success fraction lies outside
+            the bounds is α, then you pass α/2 to these functions.
+          </p>
+<p>
+            So for example a two sided 95% confidence interval would be obtained
+            by passing α = 0.025 to each of the functions.
+          </p>
+<p>
+            <a class="link" href="../../stat_tut/weg/binom_eg/binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">See worked
+            example.</a>
+          </p>
+</td></tr>
+</table></div>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_">Estimating
+          the Number of Trials Required for a Certain Number of Successes</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of events</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold</span>
+</pre>
+<p>
+          This function estimates the minimum number of trials required to ensure
+          that more than k events is observed with a level of risk <span class="emphasis"><em>alpha</em></span>
+          that k or fewer events occur.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The number of success observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of success for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable probability that k events or fewer will be
+                observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the smallest number of trials we must conduct to be 95% sure of
+          seeing 10 events that occur with frequency one half.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h6"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of">Estimating
+          the Maximum Number of Trials to Ensure no more than a Certain Number of
+          Successes</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of events</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold</span>
+</pre>
+<p>
+          This function estimates the maximum number of trials we can conduct to
+          ensure that k successes or fewer are observed, with a risk <span class="emphasis"><em>alpha</em></span>
+          that more than k occur.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The number of success observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of success for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable probability that more than k events will be
+                observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1e-6</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the largest number of trials we can conduct and still be 95% certain
+          of not observing any events that occur with one in a million frequency.
+          This is typically used in failure analysis.
+        </p>
+<p>
+          <a class="link" href="../../stat_tut/weg/binom_eg/binom_size_eg.html" title="Estimating Sample Sizes for a Binomial Distribution.">See Worked
+          Example.</a>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h7"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.non_member_accessors"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain for the random variable <span class="emphasis"><em>k</em></span> is <code class="computeroutput"><span class="number">0</span> <span class="special"><=</span> <span class="identifier">k</span> <span class="special"><=</span> <span class="identifier">N</span></code>, otherwise a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is returned.
+        </p>
+<p>
+          It's worth taking a moment to define what these accessors actually mean
+          in the context of this distribution:
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.binomial_dist.meaning_of_the_non_member_access"></a><p class="title"><b>Table 2.1. Meaning of the non-member accessors</b></p>
+<div class="table-contents"><table class="table" summary="Meaning of the non-member accessors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Meaning
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>exactly k
+                    successes</strong></span> from n trials with success fraction p. For
+                    example:
+                  </p>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
+                    <span class="identifier">p</span><span class="special">),</span>
+                    <span class="identifier">k</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>k successes
+                    or fewer</strong></span> from n trials with success fraction p. For
+                    example:
+                  </p>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
+                    <span class="identifier">p</span><span class="special">),</span>
+                    <span class="identifier">k</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of
+                    the Cumulative Distribution Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>more than
+                    k successes</strong></span> from n trials with success fraction p.
+                    For example:
+                  </p>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
+                    <span class="identifier">p</span><span class="special">),</span>
+                    <span class="identifier">k</span><span class="special">))</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>greatest</strong></span> number of successes
+                    that may be observed from n trials with success fraction p, at
+                    probability P. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the result. For example:
+                  </p>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
+                    <span class="identifier">p</span><span class="special">),</span>
+                    <span class="identifier">P</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile
+                    from the complement of the probability</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>smallest</strong></span> number of successes
+                    that may be observed from n trials with success fraction p, at
+                    probability P. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the result. For example:
+                  </p>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
+                    <span class="identifier">p</span><span class="special">),</span>
+                    <span class="identifier">P</span><span class="special">))</span></code>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h8"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.examples"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.examples">Examples</a>
+        </h5>
+<p>
+          Various <a class="link" href="../../stat_tut/weg/binom_eg.html" title="Binomial Distribution Examples">worked examples</a>
+          are available illustrating the use of the binomial distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h9"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.accuracy"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          This distribution is implemented using the incomplete beta functions <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>,
+          please refer to these functions for information on accuracy.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h10"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.implementation"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>p</em></span> is the probability that one
+          trial will be successful (the success fraction), <span class="emphasis"><em>n</em></span>
+          is the number of trials, <span class="emphasis"><em>k</em></span> is the number of successes,
+          <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Implementation is in terms of <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>:
+                    if <sub>n</sub>C<sub>k </sub> is the binomial coefficient of a and b, then we have:
+                  </p>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/binomial_ref1.png"></span>
+                  </p>
+                  <p>
+                    Which can be evaluated as <code class="computeroutput"><span class="identifier">ibeta_derivative</span><span class="special">(</span><span class="identifier">k</span><span class="special">+</span><span class="number">1</span><span class="special">,</span> <span class="identifier">n</span><span class="special">-</span><span class="identifier">k</span><span class="special">+</span><span class="number">1</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="special">(</span><span class="identifier">n</span><span class="special">+</span><span class="number">1</span><span class="special">)</span></code>
+                  </p>
+                  <p>
+                    The function <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>
+                    is used here, since it has already been optimised for the lowest
+                    possible error - indeed this is really just a thin wrapper around
+                    part of the internals of the incomplete beta function.
+                  </p>
+                  <p>
+                    There are also various special cases: refer to the code for details.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">I</span><span class="special">[</span><span class="identifier">sub</span> <span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">](</span><span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span>
+  <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">I</span><span class="special">[</span><span class="identifier">sub</span> <span class="identifier">p</span><span class="special">](</span><span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">)</span>
+  <span class="special">=</span> <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a><span class="special">(</span><span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span></pre>
+                  <p>
+                    There are also various special cases: refer to the code for details.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(k
+                    + 1, n - k, p)
+                  </p>
+                  <p>
+                    There are also various special cases: refer to the code for details.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Since the cdf is non-linear in variate <span class="emphasis"><em>k</em></span>
+                    none of the inverse incomplete beta functions can be used here.
+                    Instead the quantile is found numerically using a derivative
+                    free method (<a class="link" href="../../internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">TOMS
+                    Algorithm 748</a>).
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Found numerically as above.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">p</span> <span class="special">*</span>
+                    <span class="identifier">n</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">p</span> <span class="special">*</span>
+                    <span class="identifier">n</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">p</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="identifier">n</span>
+                    <span class="special">+</span> <span class="number">1</span><span class="special">))</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="number">2</span>
+                    <span class="special">*</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">n</span> <span class="special">*</span>
+                    <span class="identifier">p</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">p</span><span class="special">))</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="number">3</span> <span class="special">-</span>
+                    <span class="special">(</span><span class="number">6</span>
+                    <span class="special">/</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">+</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">/</span> <span class="special">(</span><span class="identifier">n</span> <span class="special">*</span>
+                    <span class="identifier">p</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">p</span><span class="special">)))</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="number">6</span>
+                    <span class="special">*</span> <span class="identifier">p</span>
+                    <span class="special">*</span> <span class="identifier">q</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="special">(</span><span class="identifier">n</span>
+                    <span class="special">*</span> <span class="identifier">p</span>
+                    <span class="special">*</span> <span class="identifier">q</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    parameter estimation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The member functions <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+                    <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+                    and <code class="computeroutput"><span class="identifier">find_number_of_trials</span></code>
+                    are implemented in terms of the inverse incomplete beta functions
+                    <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>,
+                    <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>,
+                    and <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a>
+                    respectively
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.binomial_dist.h11"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.binomial_dist.references"></a></span><a class="link" href="binomial_dist.html#math_toolkit.dist_ref.dists.binomial_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/BinomialDistribution.html" target="_top">Weisstein,
+              Eric W. "Binomial Distribution." From MathWorld--A Wolfram
+              Web Resource</a>.
+            </li>
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">Wikipedia
+              binomial distribution</a>.
+            </li>
+<li class="listitem">
+              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda366i.htm" target="_top">NIST
+              Explorary Data Analysis</a>.
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="beta_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="cauchy_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/cauchy_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/cauchy_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,295 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Cauchy-Lorentz Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="binomial_dist.html" title="Binomial Distribution">
+<link rel="next" href="chi_squared_dist.html" title="Chi Squared Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_cauchy_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.cauchy_dist"></a><a class="link" href="cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy-Lorentz
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">cauchy_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">cauchy_distribution</span><span class="special"><></span> <span class="identifier">cauchy</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">cauchy_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">cauchy_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Cauchy_distribution" target="_top">Cauchy-Lorentz
+          distribution</a> is named after Augustin Cauchy and Hendrik Lorentz.
+          It is a <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">continuous
+          probability distribution</a> with <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">probability
+          distribution function PDF</a> given by:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/cauchy_ref1.png"></span>
+        </p>
+<p>
+          The location parameter x<sub>0</sub>   is the location of the peak of the distribution
+          (the mode of the distribution), while the scale parameter γ   specifies half
+          the width of the PDF at half the maximum height. If the location is zero,
+          and the scale 1, then the result is a standard Cauchy distribution.
+        </p>
+<p>
+          The distribution is important in physics as it is the solution to the differential
+          equation describing forced resonance, while in spectroscopy it is the description
+          of the line shape of spectral lines.
+        </p>
+<p>
+          The following graph shows how the distributions moves as the location parameter
+          changes:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/cauchy_pdf1.png" align="middle"></span>
+        </p>
+<p>
+          While the following graph shows how the shape (scale) parameter alters
+          the distribution:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/cauchy_pdf2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.cauchy_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.cauchy_dist.member_functions"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist_ref.dists.cauchy_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">cauchy_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a Cauchy distribution, with location parameter <span class="emphasis"><em>location</em></span>
+          and scale parameter <span class="emphasis"><em>scale</em></span>. When these parameters take
+          their default values (location = 0, scale = 1) then the result is a Standard
+          Cauchy Distribution.
+        </p>
+<p>
+          Requires scale > 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the location parameter of the distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the scale parameter of the distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.cauchy_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.cauchy_dist.non_member_accessors"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist_ref.dists.cauchy_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          Note however that the Cauchy distribution does not have a mean, standard
+          deviation, etc. See <a class="link" href="../../pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies">mathematically
+          undefined function</a> to control whether these should fail to compile
+          with a BOOST_STATIC_ASSERTION_FAILURE, which is the default.
+        </p>
+<p>
+          Alternately, the functions <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>
+          and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>
+          will all return a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          if called.
+        </p>
+<p>
+          The domain of the random variable is [-[max_value], +[min_value]].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.cauchy_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.cauchy_dist.accuracy"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist_ref.dists.cauchy_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Cauchy distribution is implemented in terms of the standard library
+          <code class="computeroutput"><span class="identifier">tan</span></code> and <code class="computeroutput"><span class="identifier">atan</span></code>
+          functions, and as such should have very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.cauchy_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.cauchy_dist.implementation"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist_ref.dists.cauchy_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table x<sub>0 </sub> is the location parameter of the distribution,
+          γ   is its scale parameter, <span class="emphasis"><em>x</em></span> is the random variate,
+          <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = 1 / (π * γ * (1 + ((x - x<sub>0 </sub>) / γ)<sup>2</sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf and its complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The cdf is normally given by:
+                  </p>
+                  <p>
+                    p = 0.5 + atan(x)/π
+                  </p>
+                  <p>
+                    But that suffers from cancellation error as x -> -∞. So recall
+                    that for <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span>
+                    <span class="number">0</span></code>:
+                  </p>
+                  <p>
+                    atan(x) = -π/2 - atan(1/x)
+                  </p>
+                  <p>
+                    Substituting into the above we get:
+                  </p>
+                  <p>
+                    p = -atan(1/x) ; x < 0
+                  </p>
+                  <p>
+                    So the procedure is to calculate the cdf for -fabs(x) using the
+                    above formula. Note that to factor in the location and scale
+                    parameters you must substitute (x - x<sub>0 </sub>) / γ   for x in the above.
+                  </p>
+                  <p>
+                    This procedure yields the smaller of <span class="emphasis"><em>p</em></span> and
+                    <span class="emphasis"><em>q</em></span>, so the result may need subtracting from
+                    1 depending on whether we want the complement or not, and whether
+                    <span class="emphasis"><em>x</em></span> is less than x<sub>0 </sub> or not.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same procedure is used irrespective of whether we're starting
+                    from the probability or its complement. First the argument <span class="emphasis"><em>p</em></span>
+                    is reduced to the range [-0.5, 0.5], then the relation
+                  </p>
+                  <p>
+                    x = x<sub>0 </sub> ± γ   / tan(π * p)
+                  </p>
+                  <p>
+                    is used to obtain the result. Whether we're adding or subtracting
+                    from x<sub>0 </sub> is determined by whether we're starting from the complement
+                    or not.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The location parameter.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.cauchy_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.cauchy_dist.references"></a></span><a class="link" href="cauchy_dist.html#math_toolkit.dist_ref.dists.cauchy_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Cauchy_distribution" target="_top">Cauchy-Lorentz
+              distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3663.htm" target="_top">NIST
+              Exploratory Data Analysis</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/CauchyDistribution.html" target="_top">Weisstein,
+              Eric W. "Cauchy Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/chi_squared_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,401 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chi Squared Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="cauchy_dist.html" title="Cauchy-Lorentz Distribution">
+<link rel="next" href="exp_dist.html" title="Exponential Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cauchy_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="exp_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_chi_squared_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist"></a><a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi Squared
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">chi_squared_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">chi_squared_distribution</span><span class="special"><></span> <span class="identifier">chi_squared</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">chi_squared_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">i</span><span class="special">);</span>
+
+   <span class="comment">// Accessor to parameter:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Parameter estimation:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">sd</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The Chi-Squared distribution is one of the most widely used distributions
+          in statistical tests. If χ<sub>i</sub>   are ν   
+independent, normally distributed random
+          variables with means μ<sub>i</sub>   and variances σ<sub>i</sub><sup>2</sup>, then the random variable:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/chi_squ_ref1.png"></span>
+        </p>
+<p>
+          is distributed according to the Chi-Squared distribution.
+        </p>
+<p>
+          The Chi-Squared distribution is a special case of the gamma distribution
+          and has a single parameter ν   that specifies the number of degrees of freedom.
+          The following graph illustrates how the distribution changes for different
+          values of ν:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/chi_squared_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.member_functions"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a Chi-Squared distribution with <span class="emphasis"><em>v</em></span> degrees
+          of freedom.
+        </p>
+<p>
+          Requires v > 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>v</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">difference_from_variance</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
+</pre>
+<p>
+          Estimates the sample size required to detect a difference from a nominal
+          variance in a Chi-Squared test for equal standard deviations.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">difference_from_variance</span></dt>
+<dd><p>
+                The difference from the assumed nominal variance that is to be detected:
+                Note that the sign of this value is critical, see below.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable risk of rejecting the null hypothesis when
+                it is in fact true.
+              </p></dd>
+<dt><span class="term">beta</span></dt>
+<dd><p>
+                The maximum acceptable risk of falsely failing to reject the null
+                hypothesis.
+              </p></dd>
+<dt><span class="term">variance</span></dt>
+<dd><p>
+                The nominal variance being tested against.
+              </p></dd>
+<dt><span class="term">hint</span></dt>
+<dd><p>
+                An optional hint on where to start looking for a result: the current
+                sample size would be a good choice.
+              </p></dd>
+</dl>
+</div>
+<p>
+          Note that this calculation works with <span class="emphasis"><em>variances</em></span> and
+          not <span class="emphasis"><em>standard deviations</em></span>.
+        </p>
+<p>
+          The sign of the parameter <span class="emphasis"><em>difference_from_variance</em></span>
+          is important: the Chi Squared distribution is asymmetric, and the caller
+          must decide in advance whether they are testing for a variance greater
+          than a nominal value (positive <span class="emphasis"><em>difference_from_variance</em></span>)
+          or testing for a variance less than a nominal value (negative <span class="emphasis"><em>difference_from_variance</em></span>).
+          If the latter, then obviously it is a requirement that <code class="computeroutput"><span class="identifier">variance</span>
+          <span class="special">+</span> <span class="identifier">difference_from_variance</span>
+          <span class="special">></span> <span class="number">0</span></code>,
+          since no sample can have a negative variance!
+        </p>
+<p>
+          This procedure uses the method in Diamond, W. J. (1989). Practical Experiment
+          Designs, Van-Nostrand Reinhold, New York.
+        </p>
+<p>
+          See also section on Sample sizes required in <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc232.htm" target="_top">the
+          NIST Engineering Statistics Handbook, Section 7.2.3.2</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.non_member_accessors"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          (We have followed the usual restriction of the mode to degrees of freedom
+          >= 2, but note that the maximum of the pdf is actually zero for degrees
+          of freedom from 2 down to 0, and provide an extended definition that would
+          avoid a discontinuity in the mode as alternative code in a comment).
+        </p>
+<p>
+          The domain of the random variable is [0, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.examples"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.examples">Examples</a>
+        </h5>
+<p>
+          Various <a class="link" href="../../stat_tut/weg/cs_eg.html" title="Chi Squared Distribution Examples">worked examples</a>
+          are available illustrating the use of the Chi Squared Distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.accuracy"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Chi-Squared distribution is implemented in terms of the <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">incomplete
+          gamma functions</a>: please refer to the accuracy data for those functions.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.implementation"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>v</em></span> is the number of degrees
+          of freedom of the distribution, <span class="emphasis"><em>x</em></span> is the random variate,
+          <span class="emphasis"><em>p</em></span> is the probability, and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = <a class="link" href="../../sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(v
+                    / 2, x / 2) / 2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(v
+                    / 2, x / 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(v
+                    / 2, x / 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = 2 * <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(v
+                    / 2, p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = 2 * <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(v
+                    / 2, p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    v
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2v
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    v - 2 (if v >= 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 * sqrt(2 / v) == sqrt(8 / v)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3 + 12 / v
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    12 / v
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.chi_squared_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.chi_squared_dist.references"></a></span><a class="link" href="chi_squared_dist.html#math_toolkit.dist_ref.dists.chi_squared_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm" target="_top">NIST
+              Exploratory Data Analysis</a>
+            </li>
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Chi-square_distribution" target="_top">Chi-square
+              distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/Chi-SquaredDistribution.html" target="_top">Weisstein,
+              Eric W. "Chi-Squared Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cauchy_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="exp_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/exp_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/exp_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,318 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Exponential Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="chi_squared_dist.html" title="Chi Squared Distribution">
+<link rel="next" href="extreme_dist.html" title="Extreme Value Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="extreme_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_exp_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.exp_dist"></a><a class="link" href="exp_dist.html" title="Exponential Distribution">Exponential Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">exponential</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">exponential_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">exponential_distribution</span><span class="special"><></span> <span class="identifier">exponential</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">exponential_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">exponential
+          distribution</a> is a <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">continuous
+          probability distribution</a> with PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/exponential_dist_ref1.png"></span>
+        </p>
+<p>
+          It is often used to model the time between independent events that happen
+          at a constant average rate.
+        </p>
+<p>
+          The following graph shows how the distribution changes for different values
+          of the rate parameter lambda:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/exponential_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.exp_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.member_functions"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs an <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">Exponential
+          distribution</a> with parameter <span class="emphasis"><em>lambda</em></span>. Lambda
+          is defined as the reciprocal of the scale parameter.
+        </p>
+<p>
+          Requires lambda > 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Accessor function returns the lambda parameter of the distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.exp_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.non_member_accessors"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.exp_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.accuracy"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The exponential distribution is implemented in terms of the standard library
+          functions <code class="computeroutput"><span class="identifier">exp</span></code>, <code class="computeroutput"><span class="identifier">log</span></code>, <code class="computeroutput"><span class="identifier">log1p</span></code>
+          and <code class="computeroutput"><span class="identifier">expm1</span></code> and as such should
+          have very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.exp_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.implementation"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table λ is the parameter lambda of the distribution, <span class="emphasis"><em>x</em></span>
+          is the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = λ * exp(-λ * x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = 1 - exp(-x * λ) = -expm1(-x * λ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = exp(-x * λ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = -log(1-p) / λ = -log1p(-p) / λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = -log(q) / λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    1/λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    standard deviation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    1/λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    9
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.exp_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.exp_dist.references"></a></span><a class="link" href="exp_dist.html#math_toolkit.dist_ref.dists.exp_dist.references">references</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/ExponentialDistribution.html" target="_top">Weisstein,
+              Eric W. "Exponential Distribution." From MathWorld--A Wolfram
+              Web Resource</a>
+            </li>
+<li class="listitem">
+              <a href="http://documents.wolfram.com/calccenter/Functions/ListsMatrices/Statistics/ExponentialDistribution.html" target="_top">Wolfram
+              Mathematica calculator</a>
+            </li>
+<li class="listitem">
+              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3667.htm" target="_top">NIST
+              Exploratory Data Analysis</a>
+            </li>
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">Wikipedia
+              Exponential distribution</a>
+            </li>
+</ul></div>
+<p>
+          (See also the reference documentation for the related <a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme
+          Distributions</a>.)
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+              <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme
+              Value Distributions, Theory and Applications Samuel Kotz & Saralees
+              Nadarajah</a> discuss the relationship of the types of extreme
+              value distributions.
+            </li></ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="extreme_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/extreme_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/extreme_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,321 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extreme Value Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="exp_dist.html" title="Exponential Distribution">
+<link rel="next" href="f_dist.html" title="F Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="exp_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="f_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_extreme_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.extreme_dist"></a><a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme Value
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">extreme</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">extreme_value_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">extreme_value_distribution</span><span class="special"><></span> <span class="identifier">extreme_value</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">extreme_value_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+          There are various <a href="http://mathworld.wolfram.com/ExtremeValueDistribution.html" target="_top">extreme
+          value distributions</a> : this implementation represents the maximum
+          case, and is variously known as a Fisher-Tippett distribution, a log-Weibull
+          distribution or a Gumbel distribution.
+        </p>
+<p>
+          Extreme value theory is important for assessing risk for highly unusual
+          events, such as 100-year floods.
+        </p>
+<p>
+          More information can be found on the NIST,
+          Wikipedia,
+          Mathworld,
+          and <a href="http://en.wikipedia.org/wiki/Extreme_value_theory" target="_top">Extreme
+          value theory</a> websites.
+        </p>
+<p>
+          The relationship of the types of extreme value distributions, of which
+          this is but one, is discussed by <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme
+          Value Distributions, Theory and Applications Samuel Kotz & Saralees
+          Nadarajah</a>.
+        </p>
+<p>
+          The distribution has a PDF given by:
+        </p>
+<p>
+          f(x) = (1/scale) e<sup>-(x-location)/scale</sup> e<sup>-e<sup>-(x-location)/scale</sup></sup>
+        </p>
+<p>
+          Which in the standard case (scale = 1, location = 0) reduces to:
+        </p>
+<p>
+          f(x) = e<sup>-x</sup>e<sup>-e<sup>-x</sup></sup>
+        </p>
+<p>
+          The following graph illustrates how the PDF varies with the location parameter:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/extreme_value_pdf1.png" align="middle"></span>
+        </p>
+<p>
+          And this graph illustrates how the PDF varies with the shape parameter:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/extreme_value_pdf2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.extreme_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.member_functions"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs an Extreme Value distribution with the specified location and
+          scale parameters.
+        </p>
+<p>
+          Requires <code class="computeroutput"><span class="identifier">scale</span> <span class="special">></span>
+          <span class="number">0</span></code>, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the location parameter of the distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the scale parameter of the distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.extreme_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.non_member_accessors"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random parameter is [-∞, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.extreme_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.accuracy"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The extreme value distribution is implemented in terms of the standard
+          library <code class="computeroutput"><span class="identifier">exp</span></code> and <code class="computeroutput"><span class="identifier">log</span></code> functions and as such should have
+          very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.extreme_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.implementation"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table: <span class="emphasis"><em>a</em></span> is the location parameter,
+          <span class="emphasis"><em>b</em></span> is the scale parameter, <span class="emphasis"><em>x</em></span> is
+          the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = exp((a-x)/b) * exp(-exp((a-x)/b)) /
+                    b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = exp(-exp((a-x)/b))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = -expm1(-exp((a-x)/b))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: a - log(-log(p)) * b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: a - log(-log1p(-q)) * b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    a + Euler-Mascheroni-constant
+                    * b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    standard deviation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    pi * b / sqrt(6)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same as the location parameter <span class="emphasis"><em>a</em></span>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    12 * sqrt(6) * zeta(3) / pi<sup>3</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    27 / 5
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    kurtosis - 3 or 12 / 5
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="exp_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="f_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/f_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/f_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,424 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>F Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="extreme_dist.html" title="Extreme Value Distribution">
+<link rel="next" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="extreme_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_f_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.f_dist"></a><a class="link" href="f_dist.html" title="F Distribution">F Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">fisher_f</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">fisher_f_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">fisher_f_distribution</span><span class="special"><></span> <span class="identifier">fisher_f</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">fisher_f_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="comment">// Construct:</span>
+   <span class="identifier">fisher_f_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">j</span><span class="special">);</span>
+
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">//namespaces</span>
+</pre>
+<p>
+          The F distribution is a continuous distribution that arises when testing
+          whether two samples have the same variance. If χ<sup>2</sup><sub>m</sub>   and χ<sup>2</sup><sub>n</sub>   are independent
+          variates each distributed as Chi-Squared with <span class="emphasis"><em>m</em></span> and
+          <span class="emphasis"><em>n</em></span> degrees of freedom, then the test statistic:
+        </p>
+<p>
+          F<sub>n,m</sub>   = (χ<sup>2</sup><sub>n</sub>   / n) / (χ<sup>2</sup><sub>m</sub>   / m)
+        </p>
+<p>
+          Is distributed over the range [0, ∞] with an F distribution, and has the
+          PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/fisher_pdf.png"></span>
+        </p>
+<p>
+          The following graph illustrates how the PDF varies depending on the two
+          degrees of freedom parameters.
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/fisher_f_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.f_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.f_dist.member_functions"></a></span><a class="link" href="f_dist.html#math_toolkit.dist_ref.dists.f_dist.member_functions">Member Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">fisher_f_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">df1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">df2</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs an F-distribution with numerator degrees of freedom <span class="emphasis"><em>df1</em></span>
+          and denominator degrees of freedom <span class="emphasis"><em>df2</em></span>.
+        </p>
+<p>
+          Requires that <span class="emphasis"><em>df1</em></span> and <span class="emphasis"><em>df2</em></span> are
+          both greater than zero, otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is called.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the numerator degrees of freedom parameter of the distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the denominator degrees of freedom parameter of the distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.f_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.f_dist.non_member_accessors"></a></span><a class="link" href="f_dist.html#math_toolkit.dist_ref.dists.f_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.f_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.f_dist.examples"></a></span><a class="link" href="f_dist.html#math_toolkit.dist_ref.dists.f_dist.examples">Examples</a>
+        </h5>
+<p>
+          Various <a class="link" href="../../stat_tut/weg/f_eg.html" title="F Distribution Examples">worked examples</a>
+          are available illustrating the use of the F Distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.f_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.f_dist.accuracy"></a></span><a class="link" href="f_dist.html#math_toolkit.dist_ref.dists.f_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The normal distribution is implemented in terms of the <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
+          beta function</a> and its <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">inverses</a>,
+          refer to those functions for accuracy data.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.f_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.f_dist.implementation"></a></span><a class="link" href="f_dist.html#math_toolkit.dist_ref.dists.f_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>v1</em></span> and <span class="emphasis"><em>v2</em></span>
+          are the first and second degrees of freedom parameters of the distribution,
+          <span class="emphasis"><em>x</em></span> is the random variate, <span class="emphasis"><em>p</em></span> is
+          the probability, and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The usual form of the PDF is given by:
+                  </p>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/fisher_pdf.png"></span>
+                  </p>
+                  <p>
+                    However, that form is hard to evaluate directly without incurring
+                    problems with either accuracy or numeric overflow.
+                  </p>
+                  <p>
+                    Direct differentiation of the CDF expressed in terms of the incomplete
+                    beta function
+                  </p>
+                  <p>
+                    led to the following two formulas:
+                  </p>
+                  <p>
+                    f<sub>v1,v2</sub>(x) = y * <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>(v2
+                    / 2, v1 / 2, v2 / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    with y = (v2 * v1) / ((v2 + v1 * x) * (v2 + v1 * x))
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    f<sub>v1,v2</sub>(x) = y * <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>(v1
+                    / 2, v2 / 2, v1 * x / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    with y = (z * v1 - x * v1 * v1) / z<sup>2</sup>
+                  </p>
+                  <p>
+                    and z = v2 + v1 * x
+                  </p>
+                  <p>
+                    The first of these is used for v1 * x > v2, otherwise the
+                    second is used.
+                  </p>
+                  <p>
+                    The aim is to keep the <span class="emphasis"><em>x</em></span> argument to <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>
+                    away from 1 to avoid rounding error.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relations:
+                  </p>
+                  <p>
+                    p = <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(v1
+                    / 2, v2 / 2, v1 * x / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    p = <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(v2
+                    / 2, v1 / 2, v2 / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    The first is used for v1 * x > v2, otherwise the second is
+                    used.
+                  </p>
+                  <p>
+                    The aim is to keep the <span class="emphasis"><em>x</em></span> argument to <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> well
+                    away from 1 to avoid rounding error.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relations:
+                  </p>
+                  <p>
+                    p = <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(v1
+                    / 2, v2 / 2, v1 * x / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    p = <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(v2
+                    / 2, v1 / 2, v2 / (v2 + v1 * x))
+                  </p>
+                  <p>
+                    The first is used for v1 * x < v2, otherwise the second is
+                    used.
+                  </p>
+                  <p>
+                    The aim is to keep the <span class="emphasis"><em>x</em></span> argument to <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> well
+                    away from 1 to avoid rounding error.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    x = v2 * a / (v1 * b)
+                  </p>
+                  <p>
+                    where:
+                  </p>
+                  <p>
+                    a = <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>(v1
+                    / 2, v2 / 2, p)
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    b = 1 - a
+                  </p>
+                  <p>
+                    Quantities <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>
+                    are both computed by <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                    without the subtraction implied above.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                  <p>
+                    from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    x = v2 * a / (v1 * b)
+                  </p>
+                  <p>
+                    where
+                  </p>
+                  <p>
+                    a = <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>(v1
+                    / 2, v2 / 2, p)
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    b = 1 - a
+                  </p>
+                  <p>
+                    Quantities <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>
+                    are both computed by <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>
+                    without the subtraction implied above.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    v2 / (v2 - 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 * v2<sup>2 </sup> * (v1 + v2 - 2) / (v1 * (v2 - 2) * (v2 - 2) * (v2 - 4))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    v2 * (v1 - 2) / (v1 * (v2 + 2))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 * (v2 + 2 * v1 - 2) * sqrt((2 * v2 - 8) / (v1 * (v2 + v1 -
+                    2))) / (v2 - 6)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis and kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to, <a href="http://mathworld.wolfram.com/F-Distribution.html" target="_top">Weisstein,
+                    Eric W. "F-Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extreme_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/gamma_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/gamma_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,354 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Gamma (and Erlang) Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="f_dist.html" title="F Distribution">
+<link rel="next" href="geometric_dist.html" title="Geometric Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="f_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="geometric_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_gamma_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.gamma_dist"></a><a class="link" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma (and
+        Erlang) Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">gamma_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The gamma distribution is a continuous probability distribution. When the
+          shape parameter is an integer then it is known as the Erlang Distribution.
+          It is also closely related to the Poisson and Chi Squared Distributions.
+        </p>
+<p>
+          When the shape parameter has an integer value, the distribution is the
+          Erlang distribution.
+          Since this can be produced by ensuring that the shape parameter has an
+          integer value > 0, the Erlang distribution is not separately implemented.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            To avoid potential confusion with the gamma functions, this distribution
+            does not provide the typedef:
+          </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">gamma_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">gamma</span><span class="special">;</span></pre>
+<p>
+            Instead if you want a double precision gamma distribution you can write
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special"><></span> <span class="identifier">my_gamma</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span></pre>
+</td></tr>
+</table></div>
+<p>
+          For shape parameter <span class="emphasis"><em>k</em></span> and scale parameter θ   it is defined
+          by the probability density function:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/gamma_dist_ref1.png"></span>
+        </p>
+<p>
+          Sometimes an alternative formulation is used: given parameters α  = k and
+          β  = 1 / θ, then the distribution can be defined by the PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/gamma_dist_ref2.png"></span>
+        </p>
+<p>
+          In this form the inverse scale parameter is called a <span class="emphasis"><em>rate parameter</em></span>.
+        </p>
+<p>
+          Both forms are in common usage: this library uses the first definition
+          throughout. Therefore to construct a Gamma Distribution from a <span class="emphasis"><em>rate
+          parameter</em></span>, you should pass the reciprocal of the rate as the
+          scale parameter.
+        </p>
+<p>
+          The following two graphs illustrate how the PDF of the gamma distribution
+          varies as the parameters vary:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/gamma1_pdf.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/gamma2_pdf.png" align="middle"></span>
+        </p>
+<p>
+          The <span class="bold"><strong>Erlang Distribution</strong></span> is the same as
+          the Gamma, but with the shape parameter an integer. It is often expressed
+          using a <span class="emphasis"><em>rate</em></span> rather than a <span class="emphasis"><em>scale</em></span>
+          as the second parameter (remember that the rate is the reciprocal of the
+          scale).
+        </p>
+<p>
+          Internally the functions used to implement the Gamma Distribution are already
+          optimised for small-integer arguments, so in general there should be no
+          great loss of performance from using a Gamma Distribution rather than a
+          dedicated Erlang Distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.gamma_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.gamma_dist.member_functions"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist_ref.dists.gamma_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a gamma distribution with shape <span class="emphasis"><em>shape</em></span> and
+          scale <span class="emphasis"><em>scale</em></span>.
+        </p>
+<p>
+          Requires that the shape and scale parameters are greater than zero, otherwise
+          calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.gamma_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.gamma_dist.non_member_accessors"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist_ref.dists.gamma_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0,+∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.gamma_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.gamma_dist.accuracy"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist_ref.dists.gamma_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The lognormal distribution is implemented in terms of the incomplete gamma
+          functions <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+          <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> and their inverses
+          <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a> and
+          <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>: refer
+          to the accuracy data for those functions for more information.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.gamma_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.gamma_dist.implementation"></a></span><a class="link" href="gamma_dist.html#math_toolkit.dist_ref.dists.gamma_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>k</em></span> is the shape parameter of
+          the distribution, θ   is its scale parameter, <span class="emphasis"><em>x</em></span> is the
+          random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = <a class="link" href="../../sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(k,
+                    x / θ) / θ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(k,
+                    x / θ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(k,
+                    x / θ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = θ  * <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(k,
+                    p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = θ  * <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(k,
+                    p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    kθ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    kθ<sup>2</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (k-1)θ   for <span class="emphasis"><em>k>1</em></span> otherwise a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 / sqrt(k)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3 + 6 / k
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6 / k
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="f_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="geometric_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/geometric_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/geometric_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,831 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Geometric Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">
+<link rel="next" href="hypergeometric_dist.html" title="Hypergeometric Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="gamma_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="hypergeometric_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_geometric_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.geometric_dist"></a><a class="link" href="geometric_dist.html" title="Geometric Distribution">Geometric
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">geometric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">geometric_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">geometric_distribution</span><span class="special"><></span> <span class="identifier">geometric</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">geometric_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Constructor from success_fraction:</span>
+   <span class="identifier">geometric_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+
+   <span class="comment">// Parameter accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Bounds on success fraction:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// alpha</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// alpha</span>
+
+   <span class="comment">// Estimate min/max number of trials:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// Number of failures.</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// Success fraction.</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// Probability threshold alpha.</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// Number of failures.</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// Success fraction.</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// Probability threshold alpha.</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The class type <code class="computeroutput"><span class="identifier">geometric_distribution</span></code>
+          represents a <a href="http://en.wikipedia.org/wiki/geometric_distribution" target="_top">geometric
+          distribution</a>: it is used when there are exactly two mutually exclusive
+          outcomes of a <a href="http://en.wikipedia.org/wiki/Bernoulli_trial" target="_top">Bernoulli
+          trial</a>: these outcomes are labelled "success" and "failure".
+        </p>
+<p>
+          For <a href="http://en.wikipedia.org/wiki/Bernoulli_trial" target="_top">Bernoulli
+          trials</a> each with success fraction <span class="emphasis"><em>p</em></span>, the geometric
+          distribution gives the probability of observing <span class="emphasis"><em>k</em></span>
+          trials (failures, events, occurrences, or arrivals) before the first success.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            For this implementation, the set of trials <span class="bold"><strong>includes
+            zero</strong></span> (unlike another definition where the set of trials starts
+            at one, sometimes named <span class="emphasis"><em>shifted</em></span>).
+          </p></td></tr>
+</table></div>
+<p>
+          The geometric distribution assumes that success_fraction <span class="emphasis"><em>p</em></span>
+          is fixed for all <span class="emphasis"><em>k</em></span> trials.
+        </p>
+<p>
+          The probability that there are <span class="emphasis"><em>k</em></span> failures before the
+          first success is
+        </p>
+<p>
+             Pr(Y=<span class="emphasis"><em>k</em></span>) = (1-<span class="emphasis"><em>p</em></span>)<sup><span class="emphasis"><em>k</em></span></sup><span class="emphasis"><em>p</em></span>
+        </p>
+<p>
+          For example, when throwing a 6-face dice the success probability <span class="emphasis"><em>p</em></span>
+          = 1/6 = 0.1666 ̇  . Throwing repeatedly until a <span class="emphasis"><em>three</em></span>
+          appears, the probability distribution of the number of times <span class="emphasis"><em>not-a-three</em></span>
+          is thrown is geometric.
+        </p>
+<p>
+          Geometric distribution has the Probability Density Function PDF:
+        </p>
+<p>
+             (1-<span class="emphasis"><em>p</em></span>)<sup><span class="emphasis"><em>k</em></span></sup><span class="emphasis"><em>p</em></span>
+        </p>
+<p>
+          The following graph illustrates how the PDF and CDF vary for three examples
+          of the success fraction <span class="emphasis"><em>p</em></span>, (when considering the geometric
+          distribution as a continuous function),
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/geometric_pdf_2.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/geometric_cdf_2.png" align="middle"></span>
+        </p>
+<p>
+          and as discrete.
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/geometric_pdf_discrete.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/geometric_cdf_discrete.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.related_distributions"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.related_distributions">Related
+          Distributions</a>
+        </h5>
+<p>
+          The geometric distribution is a special case of the <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+          Binomial Distribution</a> with successes parameter <span class="emphasis"><em>r</em></span>
+          = 1, so only one first and only success is required : thus by definition
+             <code class="computeroutput"><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">)</span> <span class="special">==</span>
+          <span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span></code>
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+<span class="identifier">negative_binomial</span> <span class="identifier">nb</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+<span class="identifier">geometric</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">success_fraction</span><span class="special">);</span>
+<span class="identifier">ASSERT</span><span class="special">(</span><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="number">1</span><span class="special">));</span>
+</pre>
+<p>
+          This implementation uses real numbers for the computation throughout (because
+          it uses the <span class="bold"><strong>real-valued</strong></span> power and exponential
+          functions). So to obtain a conventional strictly-discrete geometric distribution
+          you must ensure that an integer value is provided for the number of trials
+          (random variable) <span class="emphasis"><em>k</em></span>, and take integer values (floor
+          or ceil functions) from functions that return a number of successes.
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The geometric distribution is a discrete distribution: internally, functions
+            like the <code class="computeroutput"><span class="identifier">cdf</span></code> and <code class="computeroutput"><span class="identifier">pdf</span></code> are treated "as if" they
+            are continuous functions, but in reality the results returned from these
+            functions only have meaning if an integer value is provided for the random
+            variate argument.
+          </p>
+<p>
+            The quantile function will by default return an integer result that has
+            been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower quantiles
+            (where the probability is less than 0.5) are rounded downward, and upper
+            quantiles (where the probability is greater than 0.5) are rounded upwards.
+            This behaviour ensures that if an X% quantile is requested, then <span class="emphasis"><em>at
+            least</em></span> the requested coverage will be present in the central
+            region, and <span class="emphasis"><em>no more than</em></span> the requested coverage
+            will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently, or even return a real-valued result using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on the geometric distribution. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.member_functions"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.constructor"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.constructor">Constructor</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">geometric_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          Constructor: <span class="emphasis"><em>p</em></span> or success_fraction is the probability
+          of success of a single trial.
+        </p>
+<p>
+          Requires: <code class="computeroutput"><span class="number">0</span> <span class="special"><=</span>
+          <span class="identifier">p</span> <span class="special"><=</span>
+          <span class="number">1</span></code>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.accessors"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.accessors">Accessors</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// successes / trials (0 <= p <= 1)</span>
+</pre>
+<p>
+          Returns the success_fraction parameter <span class="emphasis"><em>p</em></span> from which
+          this distribution was constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// required successes always one,</span>
+<span class="comment">// included for compatibility with negative binomial distribution</span>
+<span class="comment">// with successes r == 1.</span>
+</pre>
+<p>
+          Returns unity.
+        </p>
+<p>
+          The following functions are equivalent to those provided for the negative
+          binomial, with successes = 1, but are provided here for completeness.
+        </p>
+<p>
+          The best method of calculation for the following functions is disputed:
+          see <a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a> and <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+          Binomial Distribution</a> for more discussion.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.lower_bound_on_success_fraction_"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.lower_bound_on_success_fraction_">Lower
+          Bound on success_fraction Parameter <span class="emphasis"><em>p</em></span></a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">failures</span><span class="special">,</span>
+  <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">)</span> <span class="comment">// (0 <= alpha <= 1), 0.05 equivalent to 95% confidence.</span>
+</pre>
+<p>
+          Returns a <span class="bold"><strong>lower bound</strong></span> on the success fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">failures</span></dt>
+<dd><p>
+                The total number of failures before the 1st success.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>less than</strong></span> the value
+                returned.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> failures from <span class="emphasis"><em>n</em></span>
+          trials the best estimate for the success fraction is simply 1/<span class="emphasis"><em>n</em></span>,
+          but if you want to be 95% sure that the true value is <span class="bold"><strong>greater
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>min</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">geometric_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span>
+   <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">See
+          negative_binomial confidence interval example.</a>
+        </p>
+<p>
+          This function uses the Clopper-Pearson method of computing the lower bound
+          on the success fraction, whilst many texts refer to this method as giving
+          an "exact" result in practice it produces an interval that guarantees
+          <span class="emphasis"><em>at least</em></span> the coverage required, and may produce pessimistic
+          estimates for some combinations of <span class="emphasis"><em>failures</em></span> and <span class="emphasis"><em>successes</em></span>.
+          See:
+        </p>
+<p>
+          <a href="http://www.ucs.louisiana.edu/~kxk4695/Discrete_new.pdf" target="_top">Yong
+          Cai and K. Krishnamoorthy, A Simple Improved Inferential Method for Some
+          Discrete Distributions. Computational statistics and data analysis, 2005,
+          vol. 48, no3, 605-621</a>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.upper_bound_on_success_fraction_"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.upper_bound_on_success_fraction_">Upper
+          Bound on success_fraction Parameter p</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// (0 <= alpha <= 1), 0.05 equivalent to 95% confidence.</span>
+</pre>
+<p>
+          Returns an <span class="bold"><strong>upper bound</strong></span> on the success
+          fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">trials</span></dt>
+<dd><p>
+                The total number of trials conducted.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>greater than</strong></span> the value
+                returned.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> successes from <span class="emphasis"><em>n</em></span>
+          trials the best estimate for the success fraction is simply <span class="emphasis"><em>k/n</em></span>,
+          but if you want to be 95% sure that the true value is <span class="bold"><strong>less
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>max</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">geometric_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+                    <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">See
+          negative binomial confidence interval example.</a>
+        </p>
+<p>
+          This function uses the Clopper-Pearson method of computing the lower bound
+          on the success fraction, whilst many texts refer to this method as giving
+          an "exact" result in practice it produces an interval that guarantees
+          <span class="emphasis"><em>at least</em></span> the coverage required, and may produce pessimistic
+          estimates for some combinations of <span class="emphasis"><em>failures</em></span> and <span class="emphasis"><em>successes</em></span>.
+          See:
+        </p>
+<p>
+          <a href="http://www.ucs.louisiana.edu/~kxk4695/Discrete_new.pdf" target="_top">Yong
+          Cai and K. Krishnamoorthy, A Simple Improved Inferential Method for Some
+          Discrete Distributions. Computational statistics and data analysis, 2005,
+          vol. 48, no3, 605-621</a>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h6"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_e"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_e">Estimating
+          Number of Trials to Ensure at Least a Certain Number of Failures</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of failures.</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction.</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).</span>
+</pre>
+<p>
+          This functions estimates the number of trials required to achieve a certain
+          probability that <span class="bold"><strong>more than <span class="emphasis"><em>k</em></span>
+          failures will be observed</strong></span>.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The target number of failures to be observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of <span class="emphasis"><em>success</em></span> for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable <span class="emphasis"><em>risk</em></span> that only <span class="emphasis"><em>k</em></span>
+                failures or fewer will be observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">geometric_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the smallest number of trials we must conduct to be 95% (1-0.05)
+          sure of seeing 10 failures that occur with frequency one half.
+        </p>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">Worked
+          Example.</a>
+        </p>
+<p>
+          This function uses numeric inversion of the geometric distribution to obtain
+          the result: another interpretation of the result is that it finds the number
+          of trials (failures) that will lead to an <span class="emphasis"><em>alpha</em></span> probability
+          of observing <span class="emphasis"><em>k</em></span> failures or fewer.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h7"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_0"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.estimating_number_of_trials_to_0">Estimating
+          Number of Trials to Ensure a Maximum Number of Failures or Less</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of failures.</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction.</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).</span>
+</pre>
+<p>
+          This functions estimates the maximum number of trials we can conduct and
+          achieve a certain probability that <span class="bold"><strong>k failures or
+          fewer will be observed</strong></span>.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The maximum number of failures to be observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of <span class="emphasis"><em>success</em></span> for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable <span class="emphasis"><em>risk</em></span> that more than
+                <span class="emphasis"><em>k</em></span> failures will be observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">geometric_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1.0</span><span class="special">-</span><span class="number">1.0</span><span class="special">/</span><span class="number">1000000</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the largest number of trials we can conduct and still be 95% sure
+          of seeing no failures that occur with frequency one in one million.
+        </p>
+<p>
+          This function uses numeric inversion of the geometric distribution to obtain
+          the result: another interpretation of the result, is that it finds the
+          number of trials that will lead to an <span class="emphasis"><em>alpha</em></span> probability
+          of observing more than k failures.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h8"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.non_member_accessors"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          However it's worth taking a moment to define what these actually mean in
+          the context of this distribution:
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.geometric_dist.meaning_of_the_non_member_access"></a><p class="title"><b>Table 2.2. Meaning of the non-member accessors.</b></p>
+<div class="table-contents"><table class="table" summary="Meaning of the non-member accessors.">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Meaning
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>exactly k
+                    failures</strong></span> from <span class="emphasis"><em>k</em></span> trials with success
+                    fraction p. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>k failures
+                    or fewer</strong></span> from <span class="emphasis"><em>k</em></span> trials with success
+                    fraction p and success on the last trial. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of
+                    the Cumulative Distribution Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>more than
+                    k failures</strong></span> from <span class="emphasis"><em>k</em></span> trials with
+                    success fraction p and success on the last trial. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">))</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>greatest</strong></span> number of failures
+                    <span class="emphasis"><em>k</em></span> expected to be observed from <span class="emphasis"><em>k</em></span>
+                    trials with success fraction <span class="emphasis"><em>p</em></span>, at probability
+                    <span class="emphasis"><em>P</em></span>. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the real result. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile
+                    from the complement of the probability</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>smallest</strong></span> number of failures
+                    <span class="emphasis"><em>k</em></span> expected to be observed from <span class="emphasis"><em>k</em></span>
+                    trials with success fraction <span class="emphasis"><em>p</em></span>, at probability
+                    <span class="emphasis"><em>P</em></span>. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the real result. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">geometric</span><span class="special">(</span><span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">))</span></pre>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h9"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.accuracy"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          This distribution is implemented using the pow and exp functions, so most
+          results are accurate within a few epsilon for the RealType. For extreme
+          values of <code class="computeroutput"><span class="keyword">double</span></code> <span class="emphasis"><em>p</em></span>,
+          for example 0.9999999999, accuracy can fall significantly, for example
+          to 10 decimal digits (from 16).
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.geometric_dist.h10"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.geometric_dist.implementation"></a></span><a class="link" href="geometric_dist.html#math_toolkit.dist_ref.dists.geometric_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table, <span class="emphasis"><em>p</em></span> is the probability that
+          any one trial will be successful (the success fraction), <span class="emphasis"><em>k</em></span>
+          is the number of failures, <span class="emphasis"><em>p</em></span> is the probability and
+          <span class="emphasis"><em>q = 1-p</em></span>, <span class="emphasis"><em>x</em></span> is the given probability
+          to estimate the expected number of failures using the quantile.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    pdf = p * pow(q, k)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    cdf = 1 - q<sup>k=1</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    exp(log1p(-p) * (k+1))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    k = log1p(-x) / log1p(-p) -1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    k = log(x) / log1p(-p) -1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (1-p)/p
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (1-p)/p²
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (2-p)/√q
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    9+p²/q
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6 +p²/q
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    parameter estimation member functions
+                  </p>
+                </td>
+<td>
+                  <p>
+                    See <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                    Binomial Distribution</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    See <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                    Binomial Distribution</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    See <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                    Binomial Distribution</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_minimum_number_of_trials</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    See <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                    Binomial Distribution</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_maximum_number_of_trials</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    See <a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+                    Binomial Distribution</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gamma_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="hypergeometric_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/hypergeometric_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/hypergeometric_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,329 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Hypergeometric Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="geometric_dist.html" title="Geometric Distribution">
+<link rel="next" href="inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="geometric_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_hypergeometric_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist"></a><a class="link" href="hypergeometric_dist.html" title="Hypergeometric Distribution">Hypergeometric
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">hypergeometric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">hypergeometric_distribution</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">hypergeometric_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">hypergeometric_distribution</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">r</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="keyword">unsigned</span> <span class="identifier">total</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">unsigned</span> <span class="identifier">defective</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">unsigned</span> <span class="identifier">sample_count</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">typedef</span> <span class="identifier">hypergeometric_distribution</span><span class="special"><></span> <span class="identifier">hypergeometric</span><span class="special">;</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The hypergeometric distribution describes the number of "events"
+          <span class="emphasis"><em>k</em></span> from a sample <span class="emphasis"><em>n</em></span> drawn from
+          a total population <span class="emphasis"><em>N</em></span> <span class="emphasis"><em>without replacement</em></span>.
+        </p>
+<p>
+          Imagine we have a sample of <span class="emphasis"><em>N</em></span> objects of which <span class="emphasis"><em>r</em></span>
+          are "defective" and N-r are "not defective" (the terms
+          "success/failure" or "red/blue" are also used). If
+          we sample <span class="emphasis"><em>n</em></span> items <span class="emphasis"><em>without replacement</em></span>
+          then what is the probability that exactly <span class="emphasis"><em>k</em></span> items
+          in the sample are defective? The answer is given by the pdf of the hypergeometric
+          distribution <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">k</span><span class="special">;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span>
+          <span class="identifier">N</span><span class="special">)</span></code>,
+          whilst the probability of <span class="emphasis"><em>k</em></span> defectives or fewer is
+          given by F(k; r, n, N), where F(k) is the CDF of the hypergeometric distribution.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Unlike almost all of the other distributions in this library, the hypergeometric
+            distribution is strictly discrete: it can not be extended to real valued
+            arguments of its parameters or random variable.
+          </p></td></tr>
+</table></div>
+<p>
+          The following graph shows how the distribution changes as the proportion
+          of "defective" items changes, while keeping the population and
+          sample sizes constant:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/hypergeometric_pdf_1.png" align="middle"></span>
+        </p>
+<p>
+          Note that since the distribution is symmetrical in parameters <span class="emphasis"><em>n</em></span>
+          and <span class="emphasis"><em>r</em></span>, if we change the sample size and keep the population
+          and proportion "defective" the same then we obtain basically
+          the same graphs:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/hypergeometric_pdf_2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.hypergeometric_dist.member_functions"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist_ref.dists.hypergeometric_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">hypergeometric_distribution</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">r</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a hypergeometric distribution with with a population of <span class="emphasis"><em>N</em></span>
+          objects, of which <span class="emphasis"><em>r</em></span> are defective, and from which
+          <span class="emphasis"><em>n</em></span> are sampled.
+        </p>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">total</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the total number of objects <span class="emphasis"><em>N</em></span>.
+        </p>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">defective</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the number of objects <span class="emphasis"><em>r</em></span> in population <span class="emphasis"><em>N</em></span>
+          which are defective.
+        </p>
+<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">sample_count</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the number of objects <span class="emphasis"><em>n</em></span> which are sampled
+          from the population <span class="emphasis"><em>N</em></span>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.hypergeometric_dist.non_member_accessors"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist_ref.dists.hypergeometric_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is the unsigned integers in the range
+          [max(0, n + r - N), min(n, r)]. A <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is raised if the random variable is outside this range, or is not an integral
+          value.
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The quantile function will by default return an integer result that has
+            been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower quantiles
+            (where the probability is less than 0.5) are rounded downward, and upper
+            quantiles (where the probability is greater than 0.5) are rounded upwards.
+            This behaviour ensures that if an X% quantile is requested, then <span class="emphasis"><em>at
+            least</em></span> the requested coverage will be present in the central
+            region, and <span class="emphasis"><em>no more than</em></span> the requested coverage
+            will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on the Hypergeometric distribution. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+<p>
+            However, note that the implementation method of the quantile function
+            always returns an integral value, therefore attempting to use a <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a> that requires (or produces) a real valued
+            result will result in a compile time error.
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.hypergeometric_dist.accuracy"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist_ref.dists.hypergeometric_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          For small N such that <code class="computeroutput"><span class="identifier">N</span> <span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">max_factorial</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">value</span></code>
+          then table based lookup of the results gives an accuracy to a few epsilon.
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">max_factorial</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">value</span></code> is 170 at double or long double
+          precision.
+        </p>
+<p>
+          For larger N such that <code class="computeroutput"><span class="identifier">N</span> <span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">prime</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">max_prime</span><span class="special">)</span></code> then only basic arithmetic is required
+          for the calculation and the accuracy is typically < 20 epsilon. This
+          takes care of N up to 104729.
+        </p>
+<p>
+          For <code class="computeroutput"><span class="identifier">N</span> <span class="special">></span>
+          <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">prime</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">max_prime</span><span class="special">)</span></code>
+          then accuracy quickly degrades, with 5 or 6 decimal digits being lost for
+          N = 110000.
+        </p>
+<p>
+          In general for very large N, the user should expect to loose log<sub>10</sub>N decimal
+          digits of precision during the calculation, with the results becoming meaningless
+          for N >= 10<sup>15</sup>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.hypergeometric_dist.testing"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist_ref.dists.hypergeometric_dist.testing">Testing</a>
+        </h5>
+<p>
+          There are three sets of tests: our implementation is tested against a table
+          of values produced by Mathematica's implementation of this distribution.
+          We also sanity check our implementation against some spot values computed
+          using the online calculator here http://stattrek.com/Tables/Hypergeometric.aspx.
+          Finally we test accuracy against some high precision test data using this
+          implementation and NTL::RR.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.hypergeometric_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.hypergeometric_dist.implementation"></a></span><a class="link" href="hypergeometric_dist.html#math_toolkit.dist_ref.dists.hypergeometric_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          The PDF can be calculated directly using the formula:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric1.png"></span>
+        </p>
+<p>
+          However, this can only be used directly when the largest of the factorials
+          is guaranteed not to overflow the floating point representation used. This
+          formula is used directly when <code class="computeroutput"><span class="identifier">N</span>
+          <span class="special"><</span> <span class="identifier">max_factorial</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">value</span></code>
+          in which case table lookup of the factorials gives a rapid and accurate
+          implementation method.
+        </p>
+<p>
+          For larger <span class="emphasis"><em>N</em></span> the method described in "An Accurate
+          Computation of the Hypergeometric Distribution Function", Trong Wu,
+          ACM Transactions on Mathematical Software, Vol. 19, No. 1, March 1993,
+          Pages 33-43 is used. The method relies on the fact that there is an easy
+          method for factorising a factorial into the product of prime numbers:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric2.png"></span>
+        </p>
+<p>
+          Where p<sub>i</sub> is the i'th prime number, and e<sub>i</sub> is a small positive integer or
+          zero, which can be calculated via:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric3.png"></span>
+        </p>
+<p>
+          Further we can combine the factorials in the expression for the PDF to
+          yield the PDF directly as the product of prime numbers:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric4.png"></span>
+        </p>
+<p>
+          With this time the exponents e<sub>i</sub> being either positive, negative or zero.
+          Indeed such a degree of cancellation occurs in the calculation of the e<sub>i</sub> that
+          many are zero, and typically most have a magnitude or no more than 1 or
+          2.
+        </p>
+<p>
+          Calculation of the product of the primes requires some care to prevent
+          numerical overflow, we use a novel recursive method which splits the calculation
+          into a series of sub-products, with a new sub-product started each time
+          the next multiplication would cause either overflow or underflow. The sub-products
+          are stored in a linked list on the program stack, and combined in an order
+          that will guarantee no overflow or unnecessary-underflow once the last
+          sub-product has been calculated.
+        </p>
+<p>
+          This method can be used as long as N is smaller than the largest prime
+          number we have stored in our table of primes (currently 104729). The method
+          is relatively slow (calculating the exponents requires the most time),
+          but requires only a small number of arithmetic operations to calculate
+          the result (indeed there is no shorter method involving only basic arithmetic
+          once the exponents have been found), the method is therefore much more
+          accurate than the alternatives.
+        </p>
+<p>
+          For much larger N, we can calculate the PDF from the factorials using either
+          lgamma, or by directly combining lanczos approximations to avoid calculating
+          via logarithms. We use the latter method, as it is usually 1 or 2 decimal
+          digits more accurate than computing via logarithms with lgamma. However,
+          in this area where N > 104729, the user should expect to loose around
+          log<sub>10</sub>N decimal digits during the calculation in the worst case.
+        </p>
+<p>
+          The CDF and its complement is calculated by directly summing the PDF's.
+          We start by deciding whether the CDF, or its complement, is likely to be
+          the smaller of the two and then calculate the PDF at <span class="emphasis"><em>k</em></span>
+          (or <span class="emphasis"><em>k+1</em></span> if we're calculating the complement) and calculate
+          successive PDF values via the recurrence relations:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric5.png"></span>
+        </p>
+<p>
+          Until we either reach the end of the distributions domain, or the next
+          PDF value to be summed would be too small to affect the result.
+        </p>
+<p>
+          The quantile is calculated in a similar manner to the CDF: we first guess
+          which end of the distribution we're nearer to, and then sum PDFs starting
+          from the end of the distribution this time, until we have some value <span class="emphasis"><em>k</em></span>
+          that gives the required CDF.
+        </p>
+<p>
+          The median is simply the quantile at 0.5, and the remaining properties
+          are calculated via:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/hypergeometric6.png"></span>
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="geometric_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Chi Squared Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="hypergeometric_dist.html" title="Hypergeometric Distribution">
+<link rel="next" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="hypergeometric_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gamma_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_inverse_chi_squared_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist"></a><a class="link" href="inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution">Inverse
+        Chi Squared Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">inverse_chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">inverse_chi_squared_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">inverse_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">df</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Not explicitly scaled, default 1/df.</span>
+   <span class="identifier">inverse_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">df</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">/</span><span class="identifier">df</span><span class="special">);</span>  <span class="comment">// Scaled.</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// Default 1.</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// Optional scale [xi] (variance), default 1/degrees_of_freedom.</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespace boost // namespace math</span>
+</pre>
+<p>
+          The inverse chi squared distribution is a continuous probability distribution
+          of the <span class="bold"><strong>reciprocal</strong></span> of a variable distributed
+          according to the chi squared distribution.
+        </p>
+<p>
+          The sources below give confusingly different formulae using different symbols
+          for the distribution pdf, but they are all the same, or related by a change
+          of variable, or choice of scale.
+        </p>
+<p>
+          Two constructors are available to implement both the scaled and (implicitly)
+          unscaled versions.
+        </p>
+<p>
+          The main version has an explicit scale parameter which implements the
+          <a href="http://en.wikipedia.org/wiki/Scaled-inverse-chi-square_distribution" target="_top">scaled
+          inverse chi_squared distribution</a>.
+        </p>
+<p>
+          A second version has an implicit scale = 1/degrees of freedom and gives
+          the 1st definition in the <a href="http://en.wikipedia.org/wiki/Inverse-chi-square_distribution" target="_top">Wikipedia
+          inverse chi_squared distribution</a>. The 2nd Wikipedia inverse chi_squared
+          distribution definition can be implemented by explicitly specifying a scale
+          = 1.
+        </p>
+<p>
+          Both definitions are also available in Wolfram Mathematica and in The R Project for Statistical Computing
+          (geoR) with default scale = 1/degrees of freedom.
+        </p>
+<p>
+          See
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              Inverse chi_squared distribution http://en.wikipedia.org/wiki/Inverse-chi-square_distribution
+            </li>
+<li class="listitem">
+              Scaled inverse chi_squared distributionhttp://en.wikipedia.org/wiki/Scaled-inverse-chi-square_distribution
+            </li>
+<li class="listitem">
+              R inverse chi_squared distribution functions <a href="http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/geoR/html/InvChisquare.html" target="_top">R
+              </a>
+            </li>
+<li class="listitem">
+              Inverse chi_squared distribution functions <a href="http://mathworld.wolfram.com/InverseChi-SquaredDistribution.html" target="_top">Weisstein,
+              Eric W. "Inverse Chi-Squared Distribution." From MathWorld--A
+              Wolfram Web Resource.</a>
+            </li>
+<li class="listitem">
+              Inverse chi_squared distribution reference <a href="http://reference.wolfram.com/mathematica/ref/InverseChiSquareDistribution.html" target="_top">Weisstein,
+              Eric W. "Inverse Chi-Squared Distribution reference." From
+              Wolfram Mathematica.</a>
+            </li>
+</ul></div>
+<p>
+          The inverse_chi_squared distribution is used in <a href="http://en.wikipedia.org/wiki/Bayesian_statistics" target="_top">Bayesian
+          statistics</a>: the scaled inverse chi-square is conjugate prior for
+          the normal distribution with known mean, model parameter σ² (variance).
+        </p>
+<p>
+          See <a href="http://en.wikipedia.org/wiki/Conjugate_prior" target="_top">conjugate
+          priors including a table of distributions and their priors.</a>
+        </p>
+<p>
+          See also <a class="link" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">Inverse
+          Gamma Distribution</a> and <a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi
+          Squared Distribution</a>.
+        </p>
+<p>
+          The inverse_chi_squared distribution is a special case of a inverse_gamma
+          distribution with ν (degrees_of_freedom) shape (α) and scale (β) where
+        </p>
+<p>
+             α= ν /2 and β = ½.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            This distribution <span class="bold"><strong>does</strong></span> provide the typedef:
+          </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">inverse_chi_squared_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">inverse_chi_squared</span><span class="special">;</span></pre>
+<p>
+            If you want a <code class="computeroutput"><span class="keyword">double</span></code> precision
+            inverse_chi_squared distribution you can use
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">inverse_chi_squared_distribution</span><span class="special"><></span></pre>
+<p>
+            or you can write <code class="computeroutput"><span class="identifier">inverse_chi_squared</span>
+            <span class="identifier">my_invchisqr</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span></code>
+          </p>
+</td></tr>
+</table></div>
+<p>
+          For degrees of freedom parameter ν, the (<span class="bold"><strong>unscaled</strong></span>)
+          inverse chi_squared distribution is defined by the probability density
+          function (PDF):
+        </p>
+<p>
+             f(x;ν) = 2<sup>-ν/2</sup> x<sup>-ν/2-1</sup> e<sup>-1/2x</sup> / Γ(ν/2)
+        </p>
+<p>
+          and Cumulative Density Function (CDF)
+        </p>
+<p>
+              F(x;ν) = Γ(ν/2, 1/2x) / Γ(ν/2)
+        </p>
+<p>
+          For degrees of freedom parameter ν and scale parameter ξ, the <span class="bold"><strong>scaled</strong></span>
+          inverse chi_squared distribution is defined by the probability density
+          function (PDF):
+        </p>
+<p>
+             f(x;ν, ξ) = (ξν/2)<sup>ν/2</sup> e<sup>-νξ/2x</sup> x<sup>-1-ν/2</sup> / Γ(ν/2)
+        </p>
+<p>
+          and Cumulative Density Function (CDF)
+        </p>
+<p>
+              F(x;ν, ξ) = Γ(ν/2, νξ/2x) / Γ(ν/2)
+        </p>
+<p>
+          The following graphs illustrate how the PDF and CDF of the inverse chi_squared
+          distribution varies for a few values of parameters ν and ξ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_chi_squared_pdf.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_chi_squared_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.member_functions"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist_ref.dists.inverse_chi_squared_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">inverse_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">df</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Implicitly scaled 1/df.</span>
+<span class="identifier">inverse_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">df</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">);</span> <span class="comment">// Explicitly scaled.</span>
+</pre>
+<p>
+          Constructs an inverse chi_squared distribution with ν degrees of freedom
+          <span class="emphasis"><em>df</em></span>, and scale <span class="emphasis"><em>scale</em></span> with default
+          value 1/df.
+        </p>
+<p>
+          Requires that the degrees of freedom ν parameter is greater than zero, otherwise
+          calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the degrees_of_freedom ν parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the scale ξ parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.non_member_accessors"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist_ref.dists.inverse_chi_squared_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variate is [0,+∞].
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Unlike some definitions, this implementation supports a random variate
+            equal to zero as a special case, returning zero for both pdf and cdf.
+          </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.accuracy"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist_ref.dists.inverse_chi_squared_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The inverse gamma distribution is implemented in terms of the incomplete
+          gamma functions like the <a class="link" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">Inverse
+          Gamma Distribution</a> that use <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+          and <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> and their
+          inverses <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+          and <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>:
+          refer to the accuracy data for those functions for more information. But
+          in general, gamma (and thus inverse gamma) results are often accurate to
+          a few epsilon, >14 decimal digits accuracy for 64-bit double. unless
+          iteration is involved, as for the estimation of degrees of freedom.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.implementation"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist_ref.dists.inverse_chi_squared_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table ν is the degrees of freedom parameter and ξ is the scale
+          parameter of the distribution, <span class="emphasis"><em>x</em></span> is the random variate,
+          <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>
+          its complement. Parameters α for shape and β for scale are used for the inverse
+          gamma function: α = ν/2 and β = ν * ξ/2.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = <a class="link" href="../../sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(α,
+                    β/ x, β) / x * x
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(α,
+                    β / x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(α,
+                    β / x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β  / <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(α,
+                    p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = α  / <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(α,
+                    q)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ν * ξ / (ν + 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    median
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no closed form analytic equation is known, but is evaluated as
+                    quantile(0.5)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    νξ / (ν - 2) for ν > 2, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 ν² ξ² / ((ν -2)² (ν -4)) for ν >4, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    4 √2 √(ν-4) /(ν-6) for ν >6, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis_excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    12 * (5ν - 22) / ((ν - 6) * (ν - 8)) for ν >8, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3 + 12 * (5ν - 22) / ((ν - 6) * (ν-8)) for ν >8, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_chi_squared_dist.references"></a></span><a class="link" href="inverse_chi_squared_dist.html#math_toolkit.dist_ref.dists.inverse_chi_squared_dist.references">References</a>
+        </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+              Bayesian Data Analysis, Andrew Gelman, John B. Carlin, Hal S. Stern,
+              Donald B. Rubin, ISBN-13: 978-1584883883, Chapman & Hall; 2 edition
+              (29 July 2003).
+            </li>
+<li class="listitem">
+              Bayesian Computation with R, Jim Albert, ISBN-13: 978-0387922973, Springer;
+              2nd ed. edition (10 Jun 2009)
+            </li>
+</ol></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hypergeometric_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gamma_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gamma_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gamma_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,357 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Gamma Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution">
+<link rel="next" href="inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gaussian_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_inverse_gamma_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.inverse_gamma_dist"></a><a class="link" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">Inverse
+        Gamma Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">inverse_gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">inverse_gamma_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">inverse_gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The inverse_gamma distribution is a continuous probability distribution
+          of the reciprocal of a variable distributed according to the gamma distribution.
+        </p>
+<p>
+          The inverse_gamma distribution is used in Bayesian statistics.
+        </p>
+<p>
+          See <a href="http://en.wikipedia.org/wiki/Inverse-gamma_distribution" target="_top">inverse
+          gamma distribution</a>.
+        </p>
+<p>
+          <a href="http://rss.acs.unt.edu/Rdoc/library/pscl/html/igamma.html" target="_top">R
+          inverse gamma distribution functions</a>.
+        </p>
+<p>
+          <a href="http://reference.wolfram.com/mathematica/ref/InverseGammaDistribution.html" target="_top">Wolfram
+          inverse gamma distribution</a>.
+        </p>
+<p>
+          See also <a class="link" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma Distribution</a>.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            In spite of potential confusion with the inverse gamma function, this
+            distribution <span class="bold"><strong>does</strong></span> provide the typedef:
+          </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">inverse_gamma_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">gamma</span><span class="special">;</span></pre>
+<p>
+            If you want a <code class="computeroutput"><span class="keyword">double</span></code> precision
+            gamma distribution you can use
+          </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">inverse_gamma_distribution</span><span class="special"><></span></pre>
+<p>
+            or you can write <code class="computeroutput"><span class="identifier">inverse_gamma</span>
+            <span class="identifier">my_ig</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span></code>
+          </p>
+</td></tr>
+</table></div>
+<p>
+          For shape parameter α and scale parameter β, it is defined by the probability
+          density function (PDF):
+        </p>
+<p>
+             f(x;α, β) = β<sup>α</sup> * (1/x) <sup>α+1</sup> exp(-β/x) / Γ(α)
+        </p>
+<p>
+          and cumulative density function (CDF)
+        </p>
+<p>
+             F(x;α, β) = Γ(α, β/x) / Γ(α)
+        </p>
+<p>
+          The following graphs illustrate how the PDF and CDF of the inverse gamma
+          distribution varies as the parameters vary:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_gamma_pdf.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_gamma_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.member_functions"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist_ref.dists.inverse_gamma_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">inverse_gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs an inverse gamma distribution with shape α and scale β.
+        </p>
+<p>
+          Requires that the shape and scale parameters are greater than zero, otherwise
+          calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the α shape parameter of this inverse gamma distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the β scale parameter of this inverse gamma distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.non_member_accessors"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist_ref.dists.inverse_gamma_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variate is [0,+∞].
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Unlike some definitions, this implementation supports a random variate
+            equal to zero as a special case, returning zero for pdf and cdf.
+          </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.accuracy"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist_ref.dists.inverse_gamma_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The inverse gamma distribution is implemented in terms of the incomplete
+          gamma functions <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+          and <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> and their
+          inverses <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+          and <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>:
+          refer to the accuracy data for those functions for more information. But
+          in general, inverse_gamma results are accurate to a few epsilon, >14
+          decimal digits accuracy for 64-bit double.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gamma_dist.implementation"></a></span><a class="link" href="inverse_gamma_dist.html#math_toolkit.dist_ref.dists.inverse_gamma_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table α is the shape parameter of the distribution, α   is its
+          scale parameter, <span class="emphasis"><em>x</em></span> is the random variate, <span class="emphasis"><em>p</em></span>
+          is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = <a class="link" href="../../sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>(α,
+                    β/ x, β) / x * x
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(α,
+                    β / x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(α,
+                    β / x)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β  / <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>(α,
+                    p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = α  / <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>(α,
+                    q)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    β / (α + 1)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    median
+                  </p>
+                </td>
+<td>
+                  <p>
+                    no analytic equation is known, but is evaluated as quantile(0.5)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    β / (α - 1) for α > 1, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (β * β) / ((α - 1) * (α - 1) * (α - 2)) for α >2, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    4 * sqrt (α -2) / (α -3) for α >3, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis_excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (30 * α - 66) / ((α-3)*(α - 4)) for α >4, else a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gaussian_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gaussian_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gaussian_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,435 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Gaussian (or Inverse Normal) Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">
+<link rel="next" href="laplace_dist.html" title="Laplace Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_gamma_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="laplace_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_inverse_gaussian_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist"></a><a class="link" href="inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution">Inverse
+        Gaussian (or Inverse Normal) Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">inverse_gaussian</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">inverse_gaussian_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="identifier">inverse_gaussian_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+
+   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// mean default 1.</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// Optional scale, default 1 (unscaled).</span>
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// Shape = scale/mean.</span>
+<span class="special">};</span>
+<span class="keyword">typedef</span> <span class="identifier">inverse_gaussian_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">inverse_gaussian</span><span class="special">;</span>
+
+<span class="special">}}</span> <span class="comment">// namespace boost // namespace math</span>
+</pre>
+<p>
+          The Inverse Gaussian distribution distribution is a continuous probability
+          distribution.
+        </p>
+<p>
+          The distribution is also called 'normal-inverse Gaussian distribution',
+          and 'normal Inverse' distribution.
+        </p>
+<p>
+          It is also convenient to provide unity as default for both mean and scale.
+          This is the Standard form for all distributions. The Inverse Gaussian distribution
+          was first studied in relation to Brownian motion. In 1956 M.C.K. Tweedie
+          used the name Inverse Gaussian because there is an inverse relationship
+          between the time to cover a unit distance and distance covered in unit
+          time. The inverse Gaussian is one of family of distributions that have
+          been called the <a href="http://en.wikipedia.org/wiki/Tweedie_distributions" target="_top">Tweedie
+          distributions</a>.
+        </p>
+<p>
+          (So <span class="emphasis"><em>inverse</em></span> in the name may mislead: it does <span class="bold"><strong>not</strong></span> relate to the inverse of a distribution).
+        </p>
+<p>
+          The tails of the distribution decrease more slowly than the normal distribution.
+          It is therefore suitable to model phenomena where numerically large values
+          are more probable than is the case for the normal distribution. For stock
+          market returns and prices, a key characteristic is that it models that
+          extremely large variations from typical (crashes) can occur even when almost
+          all (normal) variations are small.
+        </p>
+<p>
+          Examples are returns from financial assets and turbulent wind speeds.
+        </p>
+<p>
+          The normal-inverse Gaussian distributions form a subclass of the generalised
+          hyperbolic distributions.
+        </p>
+<p>
+          See distribution.
+          <a href="http://mathworld.wolfram.com/InverseGaussianDistribution.html" target="_top">Weisstein,
+          Eric W. "Inverse Gaussian Distribution." From MathWorld--A Wolfram
+          Web Resource.</a>
+        </p>
+<p>
+          If you want a <code class="computeroutput"><span class="keyword">double</span></code> precision
+          inverse_gaussian distribution you can use
+        </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">inverse_gaussian_distribution</span><span class="special"><></span></pre>
+<p>
+          or, more conveniently, you can write
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">inverse_gaussian</span><span class="special">;</span>
+<span class="identifier">inverse_gaussian</span> <span class="identifier">my_ig</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+</pre>
+<p>
+          For mean parameters μ and scale (also called precision) parameter λ, and random
+          variate x, the inverse_gaussian distribution is defined by the probability
+          density function (PDF):
+        </p>
+<p>
+             f(x;μ, λ) = √(λ/2πx<sup>3</sup>) e<sup>-λ(x-μ)²/2μ²x</sup>
+        </p>
+<p>
+          and Cumulative Density Function (CDF):
+        </p>
+<p>
+              F(x;μ, λ) = Φ{√(λ<span class="emphasis"><em>x) (x</em></span>μ-1)} + e<sup>2μ/λ</sup> Φ{-√(λ/μ) (1+x/μ)}
+        </p>
+<p>
+          where Φ is the standard normal distribution CDF.
+        </p>
+<p>
+          The following graphs illustrate how the PDF and CDF of the inverse_gaussian
+          distribution varies for a few values of parameters μ and λ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_gaussian_pdf.png" align="middle"></span>
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/inverse_gaussian_cdf.png" align="middle"></span>
+        </p>
+<p>
+          Tweedie also provided 3 other parameterisations where (μ and λ) are replaced
+          by their ratio φ = λ/μ and by 1/μ: these forms may be more suitable for Bayesian
+          applications. These can be found on Seshadri, page 2 and are also discussed
+          by Chhikara and Folks on page 105. Another related parameterisation, the
+          __wald_distrib (where mean μ is unity) is also provided.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.member_functions"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist_ref.dists.inverse_gaussian_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">inverse_gaussian_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">df</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// optionally scaled.</span>
+</pre>
+<p>
+          Constructs an inverse_gaussian distribution with μ mean, and scale λ, with
+          both default values 1.
+        </p>
+<p>
+          Requires that both the mean μ parameter and scale λ are greater than zero,
+          otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the mean μ parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the scale λ parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.non_member_accessors"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist_ref.dists.inverse_gaussian_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variate is [0,+∞).
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Unlike some definitions, this implementation supports a random variate
+            equal to zero as a special case, returning zero for both pdf and cdf.
+          </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.accuracy"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist_ref.dists.inverse_gaussian_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The inverse_gaussian distribution is implemented in terms of the exponential
+          function and standard normal distribution <span class="emphasis"><em>N</em></span>0,1 Φ : refer
+          to the accuracy data for those functions for more information. But in general,
+          gamma (and thus inverse gamma) results are often accurate to a few epsilon,
+          >14 decimal digits accuracy for 64-bit double.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.implementation"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist_ref.dists.inverse_gaussian_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table μ is the mean parameter and λ is the scale parameter
+          of the inverse_gaussian distribution, <span class="emphasis"><em>x</em></span> is the random
+          variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>
+          its complement. Parameters μ for shape and λ for scale are used for the inverse
+          gaussian function.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    √(λ/ 2πx<sup>3</sup>) e<sup>-λ(x - μ)²/ 2μ²x</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Φ{√(λ<span class="emphasis"><em>x) (x</em></span>μ-1)} + e<sup>2μ/λ</sup> Φ{-√(λ/μ) (1+x/μ)}
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    using complement of Φ above.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    No closed form known. Estimated using a guess refined by Newton-Raphson
+                    iteration.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    No closed form known. Estimated using a guess refined by Newton-Raphson
+                    iteration.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    μ {√(1+9μ²/4λ²)² - 3μ/2λ}
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    median
+                  </p>
+                </td>
+<td>
+                  <p>
+                    No closed form analytic equation is known, but is evaluated as
+                    quantile(0.5)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    μ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    μ³/λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3 √ (μ/λ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis_excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    15μ/λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    12μ/λ
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.inverse_gaussian_dist.references"></a></span><a class="link" href="inverse_gaussian_dist.html#math_toolkit.dist_ref.dists.inverse_gaussian_dist.references">References</a>
+        </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+              Wald, A. (1947). Sequential analysis. Wiley, NY.
+            </li>
+<li class="listitem">
+              The Inverse Gaussian distribution : theory, methodology, and applications,
+              Raj S. Chhikara, J. Leroy Folks. ISBN 0824779975 (1989).
+            </li>
+<li class="listitem">
+              The Inverse Gaussian distribution : statistical theory and applications,
+              Seshadri, V , ISBN - 0387986189 (pbk) (Dewey 519.2) (1998).
+            </li>
+<li class="listitem">
+              <a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.wald.html" target="_top">Numpy
+              and Scipy Documentation</a>.
+            </li>
+<li class="listitem">
+              <a href="http://bm2.genes.nig.ac.jp/RGM2/R_current/library/statmod/man/invgauss.html" target="_top">R
+              statmod invgauss functions</a>.
+            </li>
+<li class="listitem">
+              <a href="http://cran.r-project.org/web/packages/SuppDists/index.html" target="_top">R
+              SuppDists invGauss functions</a>. (Note that these R implementations
+              names differ in case).
+            </li>
+<li class="listitem">
+              <a href="http://www.statsci.org/s/invgauss.html" target="_top">StatSci.org invgauss
+              help</a>.
+            </li>
+<li class="listitem">
+              <a href="http://www.statsci.org/s/invgauss.statSci.org" target="_top">invgauss
+              R source</a>.
+            </li>
+<li class="listitem">
+              <a href="http://www.biostat.wustl.edu/archives/html/s-news/2001-12/msg00144.html" target="_top">pwald,
+              qwald</a>.
+            </li>
+<li class="listitem">
+              <a href="http://www.brighton-webs.co.uk/distributions/wald.asp" target="_top">Brighton
+              Webs wald</a>.
+            </li>
+</ol></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_gamma_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="laplace_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/laplace_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/laplace_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,350 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Laplace Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution">
+<link rel="next" href="logistic_dist.html" title="Logistic Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_gaussian_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="logistic_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_laplace_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.laplace_dist"></a><a class="link" href="laplace_dist.html" title="Laplace Distribution">Laplace Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">laplace</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">laplace_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">laplace_distribution</span><span class="special"><></span> <span class="identifier">laplace</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">laplace_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">laplace_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          Laplace distribution is the distribution of differences between two independent
+          variates with identical exponential distributions (Abramowitz and Stegun
+          1972, p. 930). It is also called the double exponential distribution.
+        </p>
+<p>
+          For location parameter μ   and scale parameter σ   it is defined by the probability
+          density function:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/laplace_pdf.png"></span>
+        </p>
+<p>
+          The location and scale parameters are equivalent to the mean and standard
+          deviation of the normal or Gaussian distribution.
+        </p>
+<p>
+          The following graph illustrates the effect of the parameters μ   and σ   on the
+          PDF. Note that the range of the random variable remains [-∞,+∞] irrespective
+          of the value of the location parameter:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/laplace_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.laplace_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.laplace_dist.member_functions"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist_ref.dists.laplace_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">laplace_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a laplace distribution with location <span class="emphasis"><em>location</em></span>
+          and scale <span class="emphasis"><em>scale</em></span>.
+        </p>
+<p>
+          The location parameter is the same as the mean of the random variate.
+        </p>
+<p>
+          The scale parameter is proportional to the standard deviation of the random
+          variate.
+        </p>
+<p>
+          Requires that the scale parameter is greater than zero, otherwise calls
+          <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>location</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.laplace_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.laplace_dist.non_member_accessors"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist_ref.dists.laplace_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [-∞,+∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.laplace_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.laplace_dist.accuracy"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist_ref.dists.laplace_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The laplace distribution is implemented in terms of the standard library
+          log and exp functions and as such should have very small errors.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.laplace_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.laplace_dist.implementation"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist_ref.dists.laplace_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table μ is the location parameter of the distribution, σ is
+          its scale parameter, <span class="emphasis"><em>x</em></span> is the random variate, <span class="emphasis"><em>p</em></span>
+          is the probability and its complement <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = e<sup>-abs(x-μ) / σ</sup> / (2 * σ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relations:
+                  </p>
+                  <p>
+                    x < μ : p = e<sup>(x-μ)/σ </sup> / σ
+                  </p>
+                  <p>
+                    x >= μ : p = 1 - e<sup>(μ-x)/σ </sup> / σ
+
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    -x < μ : q = e<sup>(-x-μ)/σ </sup> / σ
+                  </p>
+                  <p>
+                    -x >= μ : q = 1 - e<sup>(μ+x)/σ </sup> / σ
+
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relations:
+                  </p>
+                  <p>
+                    p < 0.5 : x = μ + σ * log(2*p)
+                  </p>
+                  <p>
+                    p >= 0.5 : x = μ - σ * log(2-2*p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    q > 0.5: x = μ + σ*log(2-2*q)
+                  </p>
+                  <p>
+                    q <=0.5: x = μ - σ*log( 2*q )
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    μ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    2 * σ<sup>2</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    μ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.laplace_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.laplace_dist.references"></a></span><a class="link" href="laplace_dist.html#math_toolkit.dist_ref.dists.laplace_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/LaplaceDistribution.html" target="_top">Weisstein,
+              Eric W. "Laplace Distribution."</a> From MathWorld--A
+              Wolfram Web Resource.
+            </li>
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Laplace_distribution" target="_top">Laplace
+              Distribution</a>
+            </li>
+<li class="listitem">
+              M. Abramowitz and I. A. Stegun, Handbook of Mathematical Functions,
+              1972, p. 930.
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_gaussian_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="logistic_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/logistic_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/logistic_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,288 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Logistic Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="laplace_dist.html" title="Laplace Distribution">
+<link rel="next" href="lognormal_dist.html" title="Log Normal Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="laplace_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="lognormal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_logistic_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.logistic_dist"></a><a class="link" href="logistic_dist.html" title="Logistic Distribution">Logistic
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">logistic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">logistic_distribution</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">logistic_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">logistic_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// location.</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// scale.</span>
+
+<span class="special">};</span>
+
+<span class="keyword">typedef</span> <span class="identifier">logistic_distribution</span><span class="special"><></span> <span class="identifier">logistic</span><span class="special">;</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The logistic distribution is a continous probability distribution. It has
+          two parameters - location and scale. The cumulative distribution function
+          of the logistic distribution appears in logistic regression and feedforward
+          neural networks. Among other applications, United State Chess Federation
+          and FIDE use it to calculate chess ratings.
+        </p>
+<p>
+          The following graph shows how the distribution changes as the parameters
+          change:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/logistic_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.logistic_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.logistic_dist.member_functions"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist_ref.dists.logistic_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">logistic_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">u</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">s</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a logistic distribution with location <span class="emphasis"><em>u</em></span>
+          and scale <span class="emphasis"><em>s</em></span>.
+        </p>
+<p>
+          Requires <code class="computeroutput"><span class="identifier">scale</span> <span class="special">></span>
+          <span class="number">0</span></code>, otherwise a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is raised.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the location of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the scale of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.logistic_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.logistic_dist.non_member_accessors"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist_ref.dists.logistic_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [-[max_value], +[min_value]]. However,
+          the pdf and cdf support inputs of +∞ and -∞
+as special cases if RealType permits.
+        </p>
+<p>
+          At <code class="computeroutput"><span class="identifier">p</span><span class="special">=</span><span class="number">1</span></code> and <code class="computeroutput"><span class="identifier">p</span><span class="special">=</span><span class="number">0</span></code>, the quantile
+          function returns the result of +<a class="link" href="../../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+          and -<a class="link" href="../../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>,
+          while the complement quantile function returns the result of -<a class="link" href="../../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+          and +<a class="link" href="../../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+          respectively.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.logistic_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.logistic_dist.accuracy"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist_ref.dists.logistic_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The logistic distribution is implemented in terms of the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">exp</span></code> and the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">log</span></code>
+          functions, so its accuracy is related to the accurate implementations of
+          those functions on a given platform. When calculating the quantile with
+          a non-zero <span class="emphasis"><em>position</em></span> parameter catastrophic cancellation
+          errors can occur: in such cases, only a low <span class="emphasis"><em>absolute error</em></span>
+          can be guarenteed.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.logistic_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.logistic_dist.implementation"></a></span><a class="link" href="logistic_dist.html#math_toolkit.dist_ref.dists.logistic_dist.implementation">Implementation</a>
+        </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = e<sup>-(x-u)/s</sup> / (s*(1+e<sup>-(x-u)/s</sup>)<sup>2</sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = 1/(1+e<sup>-(x-u)/s</sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = 1/(1+e<sup>(x-u)/s</sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = u - s*log(1/p-1)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = u + s*log(p/1-p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    u
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same as the mean.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    6/5
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (π*s)<sup>2</sup> / 3
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="laplace_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="lognormal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/lognormal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/lognormal_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,320 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Log Normal Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="logistic_dist.html" title="Logistic Distribution">
+<link rel="next" href="negative_binomial_dist.html" title="Negative Binomial Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="logistic_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_lognormal_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.lognormal_dist"></a><a class="link" href="lognormal_dist.html" title="Log Normal Distribution">Log Normal
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">lognormal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">lognormal_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">lognormal_distribution</span><span class="special"><></span> <span class="identifier">lognormal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">lognormal_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">lognormal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The lognormal distribution is the distribution that arises when the logarithm
+          of the random variable is normally distributed. A lognormal distribution
+          results when the variable is the product of a large number of independent,
+          identically-distributed variables.
+        </p>
+<p>
+          For location and scale parameters <span class="emphasis"><em>m</em></span> and <span class="emphasis"><em>s</em></span>
+          it is defined by the probability density function:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/lognormal_ref.png"></span>
+        </p>
+<p>
+          The location and scale parameters are equivalent to the mean and standard
+          deviation of the logarithm of the random variable.
+        </p>
+<p>
+          The following graph illustrates the effect of the location parameter on
+          the PDF, note that the range of the random variable remains [0,+∞] irrespective
+          of the value of the location parameter:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/lognormal_pdf1.png" align="middle"></span>
+        </p>
+<p>
+          The next graph illustrates the effect of the scale parameter on the PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/lognormal_pdf2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.lognormal_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.lognormal_dist.member_functions"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist_ref.dists.lognormal_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">lognormal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a lognormal distribution with location <span class="emphasis"><em>location</em></span>
+          and scale <span class="emphasis"><em>scale</em></span>.
+        </p>
+<p>
+          The location parameter is the same as the mean of the logarithm of the
+          random variate.
+        </p>
+<p>
+          The scale parameter is the same as the standard deviation of the logarithm
+          of the random variate.
+        </p>
+<p>
+          Requires that the scale parameter is greater than zero, otherwise calls
+          <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>location</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.lognormal_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.lognormal_dist.non_member_accessors"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist_ref.dists.lognormal_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0,+∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.lognormal_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.lognormal_dist.accuracy"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist_ref.dists.lognormal_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The lognormal distribution is implemented in terms of the standard library
+          log and exp functions, plus the <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">error
+          function</a>, and as such should have very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.lognormal_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.lognormal_dist.implementation"></a></span><a class="link" href="lognormal_dist.html#math_toolkit.dist_ref.dists.lognormal_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>m</em></span> is the location parameter
+          of the distribution, <span class="emphasis"><em>s</em></span> is its scale parameter, <span class="emphasis"><em>x</em></span>
+          is the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = e<sup>-(ln(x) - m)<sup>2 </sup> / 2s<sup>2 </sup> </sup> / (x * s * sqrt(2pi))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = cdf(normal_distribtion<RealType>(m,
+                    s), log(x))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = cdf(complement(normal_distribtion<RealType>(m,
+                    s), log(x)))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = exp(quantile(normal_distribtion<RealType>(m,
+                    s), p))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = exp(quantile(complement(normal_distribtion<RealType>(m,
+                    s), q)))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    e<sup>m + s<sup>2 </sup> / 2 </sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (e<sup>s<sup>2</sup> </sup> - 1) * e<sup>2m + s<sup>2 </sup> </sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    e<sup>m + s<sup>2 </sup> </sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    sqrt(e<sup>s<sup>2</sup> </sup> - 1) * (2 + e<sup>s<sup>2</sup> </sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    e<sup>4s<sup>2</sup> </sup> + 2e<sup>3s<sup>2</sup> </sup> + 3e<sup>2s<sup>2</sup> </sup> - 3
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    e<sup>4s<sup>2</sup> </sup> + 2e<sup>3s<sup>2</sup> </sup> + 3e<sup>2s<sup>2</sup> </sup> - 6
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="logistic_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_beta_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_beta_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,403 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Noncentral Beta Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="negative_binomial_dist.html" title="Negative Binomial Distribution">
+<link rel="next" href="nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="negative_binomial_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_nc_beta_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist"></a><a class="link" href="nc_beta_dist.html" title="Noncentral Beta Distribution">Noncentral
+        Beta Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_beta_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">non_central_beta_distribution</span><span class="special"><></span> <span class="identifier">non_central_beta</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_beta_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">non_central_beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+
+   <span class="comment">// Accessor to shape parameters:</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Accessor to non-centrality parameter lambda:</span>
+   <span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The noncentral beta distribution is a generalization of the <a class="link" href="beta_dist.html" title="Beta Distribution">Beta
+          Distribution</a>.
+        </p>
+<p>
+          It is defined as the ratio X = χ<sub>m</sub><sup>2</sup>(λ) / (χ<sub>m</sub><sup>2</sup>(λ) + χ<sub>n</sub><sup>2</sup>) where χ<sub>m</sub><sup>2</sup>(λ) is a noncentral
+          χ<sup>2</sup>
+random variable with <span class="emphasis"><em>m</em></span> degrees of freedom, and χ<sub>n</sub><sup>2</sup>
+is
+          a central χ<sup>2</sup> random variable with <span class="emphasis"><em>n</em></span> degrees of freedom.
+        </p>
+<p>
+          This gives a PDF that can be expressed as a Poisson mixture of beta distribution
+          PDFs:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_beta_ref1.png"></span>
+        </p>
+<p>
+          where P(i;λ/2) is the discrete Poisson probablity at <span class="emphasis"><em>i</em></span>,
+          with mean λ/2, and I<sub>x</sub><sup>'</sup>(α, β) is the derivative of the incomplete beta function.
+          This leads to the usual form of the CDF as:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_beta_ref2.png"></span>
+        </p>
+<p>
+          The following graph illustrates how the distribution changes for different
+          values of λ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/nc_beta_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_beta_dist.member_functions"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist_ref.dists.nc_beta_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">non_central_beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a noncentral beta distribution with shape parameters <span class="emphasis"><em>a</em></span>
+          and <span class="emphasis"><em>b</em></span> and non-centrality parameter <span class="emphasis"><em>lambda</em></span>.
+        </p>
+<p>
+          Requires a > 0, b > 0 and lambda >= 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>a</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>b</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>lambda</em></span> from which this object
+          was constructed.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_beta_dist.non_member_accessors"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist_ref.dists.nc_beta_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          Most of the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member
+          accessor functions</a> are supported: <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+          Distribution Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability
+          Density Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          Mean and variance are implemented using hypergeometric pfq functions and
+          relations given in <a href="http://reference.wolfram.com/mathematica/ref/NoncentralBetaDistribution.html" target="_top">Wolfram
+          Noncentral Beta Distribution</a>.
+        </p>
+<p>
+          However, the following are not currently implemented: <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a> and
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, 1].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_beta_dist.accuracy"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist_ref.dists.nc_beta_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The following table shows the peak errors (in units of epsilon)
+          found on various platforms with various floating point types. No comparison
+          to the R-2.5.1 Math library,
+          or to the FORTRAN implementations of AS226 or AS310 are given since these
+          appear to only guarantee absolute error: this would causes our test harness
+          to assign an <span class="emphasis"><em>"infinite"</em></span> error to these libraries
+          for some of our test values when measuring <span class="emphasis"><em>relative error</em></span>.
+          Unless otherwise specified any floating-point type that is narrower than
+          the one shown will have <a class="link" href="../../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+          zero error</a>.
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.errors_in_cdf_of_the_noncentral_"></a><p class="title"><b>Table 2.4. Errors In CDF of the Noncentral Beta</b></p>
+<div class="table-contents"><table class="table" summary="Errors In CDF of the Noncentral Beta">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Significand Size
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Platform and Compiler
+                  </p>
+                </th>
+<th>
+                  <p>
+                    α, β,λ < 200
+                  </p>
+                </th>
+<th>
+                  <p>
+                    α,β,λ > 200
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    53
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Win32, Visual C++ 8
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=620 Mean=22
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=8670 Mean=1040
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    RedHat Linux IA32, gcc-4.1.1
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=825 Mean=50
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=2.5x10<sup>4</sup> Mean=4000
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Redhat Linux IA64, gcc-3.4.4
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=825 Mean=30
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=1.7x10<sup>4</sup> Mean=2500
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    113
+                  </p>
+                </td>
+<td>
+                  <p>
+                    HPUX IA64, aCC A.06.06
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=420 Mean=50
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=9200 Mean=1200
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+          Error rates for the PDF, the complement of the CDF and for the quantile
+          functions are broadly similar.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_beta_dist.tests"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist_ref.dists.nc_beta_dist.tests">Tests</a>
+        </h5>
+<p>
+          There are two sets of test data used to verify this implementation: firstly
+          we can compare with a few sample values generated by the <a href="http://www.r-project.org/" target="_top">R
+          library</a>. Secondly, we have tables of test data, computed with this
+          implementation and using interval arithmetic - this data should be accurate
+          to at least 50 decimal digits - and is the used for our accuracy tests.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_beta_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_beta_dist.implementation"></a></span><a class="link" href="nc_beta_dist.html#math_toolkit.dist_ref.dists.nc_beta_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          The CDF and its complement are evaluated as follows:
+        </p>
+<p>
+          First we determine which of the two values (the CDF or its complement)
+          is likely to be the smaller, the crossover point is taken to be the mean
+          of the distribution: for this we use the approximation due to: R. Chattamvelli
+          and R. Shanmugam, "Algorithm AS 310: Computing the Non-Central Beta
+          Distribution Function", Applied Statistics, Vol. 46, No. 1. (1997),
+          pp. 146-156.
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_beta_ref3.png"></span>
+        </p>
+<p>
+          Then either the CDF or its complement is computed using the relations:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_beta_ref4.png"></span>
+        </p>
+<p>
+          The summation is performed by starting at i = λ/2, and then recursing in
+          both directions, using the usual recurrence relations for the Poisson PDF
+          and incomplete beta functions. This is the "Method 2" described
+          by:
+        </p>
+<p>
+          Denise Benton and K. Krishnamoorthy, "Computing discrete mixtures
+          of continuous distributions: noncentral chisquare, noncentral t and the
+          distribution of the square of the sample multiple correlation coefficient",
+          Computational Statistics & Data Analysis 43 (2003) 249-267.
+        </p>
+<p>
+          Specific applications of the above formulae to the noncentral beta distribution
+          can be found in:
+        </p>
+<p>
+          Russell V. Lenth, "Algorithm AS 226: Computing Noncentral Beta Probabilities",
+          Applied Statistics, Vol. 36, No. 2. (1987), pp. 241-244.
+        </p>
+<p>
+          H. Frick, "Algorithm AS R84: A Remark on Algorithm AS 226: Computing
+          Non-Central Beta Probabilities", Applied Statistics, Vol. 39, No.
+          2. (1990), pp. 311-312.
+        </p>
+<p>
+          Ming Long Lam, "Remark AS R95: A Remark on Algorithm AS 226: Computing
+          Non-Central Beta Probabilities", Applied Statistics, Vol. 44, No.
+          4. (1995), pp. 551-552.
+        </p>
+<p>
+          Harry O. Posten, "An Effective Algorithm for the Noncentral Beta Distribution
+          Function", The American Statistician, Vol. 47, No. 2. (May, 1993),
+          pp. 129-131.
+        </p>
+<p>
+          R. Chattamvelli, "A Note on the Noncentral Beta Distribution Function",
+          The American Statistician, Vol. 49, No. 2. (May, 1995), pp. 231-234.
+        </p>
+<p>
+          Of these, the Posten reference provides the most complete overview, and
+          includes the modification starting iteration at λ/2.
+        </p>
+<p>
+          The main difference between this implementation and the above references
+          is the direct computation of the complement when most efficient to do so,
+          and the accumulation of the sum to -1 rather than subtracting the result
+          from 1 at the end: this can substantially reduce the number of iterations
+          required when the result is near 1.
+        </p>
+<p>
+          The PDF is computed using the methodology of Benton and Krishnamoorthy
+          and the relation:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_beta_ref1.png"></span>
+        </p>
+<p>
+          Quantiles are computed using a specially modified version of <a class="link" href="../../internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">bracket_and_solve_root</a>,
+          starting the search for the root at the mean of the distribution. (A Cornish-Fisher
+          type expansion was also tried, but while this gets quite close to the root
+          in many cases, when it is wrong it tends to introduce quite pathological
+          behaviour: more investigation in this area is probably warranted).
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="negative_binomial_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_chi_squared_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_chi_squared_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_chi_squared_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,494 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Noncentral Chi-Squared Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="nc_beta_dist.html" title="Noncentral Beta Distribution">
+<link rel="next" href="nc_f_dist.html" title="Noncentral F Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nc_beta_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_f_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_nc_chi_squared_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist"></a><a class="link" href="nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+        Chi-Squared Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_chi_squared_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">non_central_chi_squared_distribution</span><span class="special"><></span> <span class="identifier">non_central_chi_squared</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_chi_squared_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">non_central_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+
+   <span class="comment">// Accessor to degrees of freedom parameter v:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Accessor to non centrality parameter lambda:</span>
+   <span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Parameter finders:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">></span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">complemented3_type</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">>&</span> <span class="identifier">c</span><span class="special">);</span>
+
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_non_centrality</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">></span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_non_centrality</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">complemented3_type</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">>&</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The noncentral chi-squared distribution is a generalization of the <a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi Squared Distribution</a>.
+          If X<sub>i</sub> are ν independent, normally distributed random variables with means
+          μ<sub>i</sub> and variances σ<sub>i</sub><sup>2</sup>, then the random variable
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref1.png"></span>
+        </p>
+<p>
+          is distributed according to the noncentral chi-squared distribution.
+        </p>
+<p>
+          The noncentral chi-squared distribution has two parameters: ν which specifies
+          the number of degrees of freedom (i.e. the number of X<sub>i</sub>), and λ which is
+          related to the mean of the random variables X<sub>i</sub> by:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref2.png"></span>
+        </p>
+<p>
+          (Note that some references define λ as one half of the above sum).
+        </p>
+<p>
+          This leads to a PDF of:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref3.png"></span>
+        </p>
+<p>
+          where <span class="emphasis"><em>f(x;k)</em></span> is the central chi-squared distribution
+          PDF, and <span class="emphasis"><em>I<sub>v</sub>(x)</em></span> is a modified Bessel function of the
+          first kind.
+        </p>
+<p>
+          The following graph illustrates how the distribution changes for different
+          values of λ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/nccs_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.member_functions"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">non_central_chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a Chi-Squared distribution with <span class="emphasis"><em>v</em></span> degrees
+          of freedom and non-centrality parameter <span class="emphasis"><em>lambda</em></span>.
+        </p>
+<p>
+          Requires v > 0 and lambda >= 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>v</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>lambda</em></span> from which this object
+          was constructed.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          This function returns the number of degrees of freedom <span class="emphasis"><em>v</em></span>
+          such that: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">>(</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">lambda</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">p</span></code>
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">></span>
+<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">complemented3_type</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">>&</span> <span class="identifier">c</span><span class="special">);</span>
+</pre>
+<p>
+          When called with argument <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">lambda</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span>
+          <span class="identifier">q</span><span class="special">)</span></code>
+          this function returns the number of degrees of freedom <span class="emphasis"><em>v</em></span>
+          such that:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">>(</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">lambda</span><span class="special">),</span> <span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">q</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_non_centrality</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          This function returns the non centrality parameter <span class="emphasis"><em>lambda</em></span>
+          such that:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">>(</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">lambda</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">p</span></code>
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">></span>
+<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_non_centrality</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">complemented3_type</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">>&</span> <span class="identifier">c</span><span class="special">);</span>
+</pre>
+<p>
+          When called with argument <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">v</span><span class="special">,</span>
+          <span class="identifier">x</span><span class="special">,</span>
+          <span class="identifier">q</span><span class="special">)</span></code>
+          this function returns the non centrality parameter <span class="emphasis"><em>lambda</em></span>
+          such that:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">>(</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">lambda</span><span class="special">),</span> <span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">q</span></code>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.non_member_accessors"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.examples"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.examples">Examples</a>
+        </h5>
+<p>
+          There is a <a class="link" href="../../stat_tut/weg/nccs_eg.html" title="Non Central Chi Squared Example">worked example</a>
+          for the noncentral chi-squared distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.accuracy"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The following table shows the peak errors (in units of epsilon)
+          found on various platforms with various floating-point types, along with
+          comparisons to the <a href="http://www.r-project.org/" target="_top">R-2.5.1 Math
+          library</a>. Unless otherwise specified, any floating-point type that
+          is narrower than the one shown will have <a class="link" href="../../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+          zero error</a>.
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.errors_in_cdf_of_the_noncentral_"></a><p class="title"><b>Table 2.5. Errors In CDF of the Noncentral Chi-Squared</b></p>
+<div class="table-contents"><table class="table" summary="Errors In CDF of the Noncentral Chi-Squared">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Significand Size
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Platform and Compiler
+                  </p>
+                </th>
+<th>
+                  <p>
+                    ν,λ < 200
+                  </p>
+                </th>
+<th>
+                  <p>
+                    ν,λ > 200
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    53
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Win32, Visual C++ 8
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=50 Mean=9.9
+                  </p>
+                  <p>
+                    R Peak=685 Mean=109
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=9780 Mean=718
+                  </p>
+                  <p>
+                    R Peak=3x10<sup>8</sup> Mean=2x10<sup>7</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    RedHat Linux IA32, gcc-4.1.1
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=270 Mean=27
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=7900 Mean=900
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Redhat Linux IA64, gcc-3.4.4
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=107 Mean=17
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=5000 Mean=630
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    113
+                  </p>
+                </td>
+<td>
+                  <p>
+                    HPUX IA64, aCC A.06.06
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=270 Mean=20
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=4600 Mean=560
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+          Error rates for the complement of the CDF and for the quantile functions
+          are broadly similar. Special mention should go to the <code class="computeroutput"><span class="identifier">mode</span></code>
+          function: there is no closed form for this function, so it is evaluated
+          numerically by finding the maxima of the PDF: in principal this can not
+          produce an accuracy greater than the square root of the machine epsilon.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.tests"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.tests">Tests</a>
+        </h5>
+<p>
+          There are two sets of test data used to verify this implementation: firstly
+          we can compare with published data, for example with Table 6 of "Self-Validating
+          Computations of Probabilities for Selected Central and Noncentral Univariate
+          Probability Functions", Morgan C. Wang and William J. Kennedy, Journal
+          of the American Statistical Association, Vol. 89, No. 427. (Sep., 1994),
+          pp. 878-887. Secondly, we have tables of test data, computed with this
+          implementation and using interval arithmetic - this data should be accurate
+          to at least 50 decimal digits - and is the used for our accuracy tests.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_chi_squared_dist.implementation"></a></span><a class="link" href="nc_chi_squared_dist.html#math_toolkit.dist_ref.dists.nc_chi_squared_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          The CDF and its complement are evaluated as follows:
+        </p>
+<p>
+          First we determine which of the two values (the CDF or its complement)
+          is likely to be the smaller: for this we can use the relation due to Temme
+          (see "Asymptotic and Numerical Aspects of the Noncentral Chi-Square
+          Distribution", N. M. Temme, Computers Math. Applic. Vol 25, No. 5,
+          55-63, 1993) that:
+        </p>
+<p>
+          F(ν,λ;ν+λ) ≈ 0.5
+        </p>
+<p>
+          and so compute the CDF when the random variable is less than ν+λ, and its
+          complement when the random variable is greater than ν+λ. If necessary the
+          computed result is then subtracted from 1 to give the desired result (the
+          CDF or its complement).
+        </p>
+<p>
+          For small values of the non centrality parameter, the CDF is computed using
+          the method of Ding (see "Algorithm AS 275: Computing the Non-Central
+          #2 Distribution Function", Cherng G. Ding, Applied Statistics, Vol.
+          41, No. 2. (1992), pp. 478-482). This uses the following series representation:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref4.png"></span>
+        </p>
+<p>
+          which requires just one call to <a class="link" href="../../sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">gamma_p_derivative</a>
+          with the subsequent terms being computed by recursion as shown above.
+        </p>
+<p>
+          For larger values of the non-centrality parameter, Ding's method can take
+          an unreasonable number of terms before convergence is achieved. Furthermore,
+          the largest term is not the first term, so in extreme cases the first term
+          may be zero, leading to a zero result, even though the true value may be
+          non-zero.
+        </p>
+<p>
+          Therefore, when the non-centrality parameter is greater than 200, the method
+          due to Krishnamoorthy (see "Computing discrete mixtures of continuous
+          distributions: noncentral chisquare, noncentral t and the distribution
+          of the square of the sample multiple correlation coefficient", Denise
+          Benton and K. Krishnamoorthy, Computational Statistics & Data Analysis,
+          43, (2003), 249-267) is used.
+        </p>
+<p>
+          This method uses the well known sum:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref5.png"></span>
+        </p>
+<p>
+          Where P<sub>a</sub>(x) is the incomplete gamma function.
+        </p>
+<p>
+          The method starts at the λth term, which is where the Poisson weighting
+          function achieves its maximum value, although this is not necessarily the
+          largest overall term. Subsequent terms are calculated via the normal recurrence
+          relations for the incomplete gamma function, and iteration proceeds both
+          forwards and backwards until sufficient precision has been achieved. It
+          should be noted that recurrence in the forwards direction of P<sub>a</sub>(x) is numerically
+          unstable. However, since we always start <span class="emphasis"><em>after</em></span> the
+          largest term in the series, numeric instability is introduced more slowly
+          than the series converges.
+        </p>
+<p>
+          Computation of the complement of the CDF uses an extension of Krishnamoorthy's
+          method, given that:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref6.png"></span>
+        </p>
+<p>
+          we can again start at the λ'th term and proceed in both directions from
+          there until the required precision is achieved. This time it is backwards
+          recursion on the incomplete gamma function Q<sub>a</sub>(x) which is unstable. However,
+          as long as we start well <span class="emphasis"><em>before</em></span> the largest term,
+          this is not an issue in practice.
+        </p>
+<p>
+          The PDF is computed directly using the relation:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref3.png"></span>
+        </p>
+<p>
+          Where <span class="emphasis"><em>f(x; v)</em></span> is the PDF of the central <a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi
+          Squared Distribution</a> and <span class="emphasis"><em>I<sub>v</sub>(x)</em></span> is a modified
+          Bessel function, see <a class="link" href="../../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a>.
+          For small values of the non-centrality parameter the relation in terms
+          of <a class="link" href="../../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> is used.
+          However, this method fails for large values of the non-centrality parameter,
+          so in that case the infinite sum is evaluated using the method of Benton
+          and Krishnamoorthy, and the usual recurrence relations for successive terms.
+        </p>
+<p>
+          The quantile functions are computed by numeric inversion of the CDF.
+        </p>
+<p>
+          There is no <a href="http://en.wikipedia.org/wiki/Closed_form" target="_top">closed
+          form</a> for the mode of the noncentral chi-squared distribution: it
+          is computed numerically by finding the maximum of the PDF. Likewise, the
+          median is computed numerically via the quantile.
+        </p>
+<p>
+          The remaining non-member functions use the following formulas:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_chi_squ_ref7.png"></span>
+        </p>
+<p>
+          Some analytic properties of noncentral distributions (particularly unimodality,
+          and monotonicity of their modes) are surveyed and summarized by:
+        </p>
+<p>
+          Andrea van Aubel & Wolfgang Gawronski, Applied Mathematics and Computation,
+          141 (2003) 3-12.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nc_beta_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_f_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_f_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_f_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,400 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Noncentral F Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">
+<link rel="next" href="nc_t_dist.html" title="Noncentral T Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nc_chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_t_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_nc_f_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.nc_f_dist"></a><a class="link" href="nc_f_dist.html" title="Noncentral F Distribution">Noncentral F
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_f</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_f_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">non_central_f_distribution</span><span class="special"><></span> <span class="identifier">non_central_f</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_f_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">non_central_f_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">v2</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+
+   <span class="comment">// Accessor to degrees_of_freedom parameters v1 & v2:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Accessor to non-centrality parameter lambda:</span>
+   <span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The noncentral F distribution is a generalization of the <a class="link" href="f_dist.html" title="F Distribution">Fisher
+          F Distribution</a>. It is defined as the ratio
+        </p>
+<pre class="programlisting"><span class="identifier">F</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">X</span><span class="special">/</span><span class="identifier">v1</span><span class="special">)</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">Y</span><span class="special">/</span><span class="identifier">v2</span><span class="special">)</span>
+</pre>
+<p>
+          where X is a noncentral χ<sup>2</sup>
+random variable with <span class="emphasis"><em>v1</em></span> degrees
+          of freedom and non-centrality parameter λ, and Y is a central χ<sup>2</sup> random variable
+          with <span class="emphasis"><em>v2</em></span> degrees of freedom.
+        </p>
+<p>
+          This gives the following PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_f_ref1.png"></span>
+        </p>
+<p>
+          where L<sub>a</sub><sup>b</sup>(c) is a generalised Laguerre polynomial and B(a,b) is the <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a> function, or
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_f_ref2.png"></span>
+        </p>
+<p>
+          The following graph illustrates how the distribution changes for different
+          values of λ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/nc_f_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_f_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_f_dist.member_functions"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist_ref.dists.nc_f_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">non_central_f_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">v2</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a non-central beta distribution with parameters <span class="emphasis"><em>v1</em></span>
+          and <span class="emphasis"><em>v2</em></span> and non-centrality parameter <span class="emphasis"><em>lambda</em></span>.
+        </p>
+<p>
+          Requires v1 > 0, v2 > 0 and lambda >= 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>v1</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>v2</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the non-centrality parameter <span class="emphasis"><em>lambda</em></span> from which
+          this object was constructed.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_f_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_f_dist.non_member_accessors"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist_ref.dists.nc_f_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_f_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_f_dist.accuracy"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist_ref.dists.nc_f_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          This distribution is implemented in terms of the <a class="link" href="nc_beta_dist.html" title="Noncentral Beta Distribution">Noncentral
+          Beta Distribution</a>: refer to that distribution for accuracy data.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_f_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_f_dist.tests"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist_ref.dists.nc_f_dist.tests">Tests</a>
+        </h5>
+<p>
+          Since this distribution is implemented by adapting another distribution,
+          the tests consist of basic sanity checks computed by the <a href="http://www.r-project.org/" target="_top">R-2.5.1
+          Math library statistical package</a> and its pbeta and dbeta functions.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_f_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_f_dist.implementation"></a></span><a class="link" href="nc_f_dist.html#math_toolkit.dist_ref.dists.nc_f_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>v1</em></span> and <span class="emphasis"><em>v2</em></span>
+          are the first and second degrees of freedom parameters of the distribution,
+          λ
+is the non-centrality parameter, <span class="emphasis"><em>x</em></span> is the random variate,
+          <span class="emphasis"><em>p</em></span> is the probability, and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Implemented in terms of the non-central beta PDF using the relation:
+                  </p>
+                  <p>
+                    f(x;v1,v2;λ) = (v1/v2) / ((1+y)*(1+y)) * g(y/(1+y);v1/2,v2/2;λ)
+                  </p>
+                  <p>
+                    where g(x; a, b; λ) is the non central beta PDF, and:
+                  </p>
+                  <p>
+                    y = x * v1 / v2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    p = B<sub>y</sub>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    where B<sub>x</sub>(a, b; λ) is the noncentral beta distribution CDF and
+                  </p>
+                  <p>
+                    y = x * v1 / v2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    q = 1 - B<sub>y</sub>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    where 1 - B<sub>x</sub>(a, b; λ) is the complement of the noncentral beta
+                    distribution CDF and
+                  </p>
+                  <p>
+                    y = x * v1 / v2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    x = (bx / (1-bx)) * (v1 / v2)
+                  </p>
+                  <p>
+                    where
+                  </p>
+                  <p>
+                    bx = Q<sub>p</sub><sup>-1</sup>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    Q<sub>p</sub><sup>-1</sup>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    is the noncentral beta quantile.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                  <p>
+                    from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    x = (bx / (1-bx)) * (v1 / v2)
+                  </p>
+                  <p>
+                    where
+                  </p>
+                  <p>
+                    bx = QC<sub>q</sub><sup>-1</sup>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    and
+                  </p>
+                  <p>
+                    QC<sub>q</sub><sup>-1</sup>(v1/2, v2/2; λ)
+                  </p>
+                  <p>
+                    is the noncentral beta quantile from the complement.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    v2 * (v1 + l) / (v1 * (v2 - 2))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    By numeric maximalisation of the PDF.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to, <a href="http://mathworld.wolfram.com/NoncentralF-Distribution.html" target="_top">Weisstein,
+                    Eric W. "Noncentral F-Distribution." From MathWorld--A
+                    Wolfram Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to, <a href="http://mathworld.wolfram.com/NoncentralF-Distribution.html" target="_top">Weisstein,
+                    Eric W. "Noncentral F-Distribution." From MathWorld--A
+                    Wolfram Web Resource.</a>, and to the <a href="http://reference.wolfram.com/mathematica/ref/NoncentralFRatioDistribution.html" target="_top">Mathematica
+                    documentation</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis and kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to, <a href="http://mathworld.wolfram.com/NoncentralF-Distribution.html" target="_top">Weisstein,
+                    Eric W. "Noncentral F-Distribution." From MathWorld--A
+                    Wolfram Web Resource.</a>, and to the <a href="http://reference.wolfram.com/mathematica/ref/NoncentralFRatioDistribution.html" target="_top">Mathematica
+                    documentation</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Some analytic properties of noncentral distributions (particularly unimodality,
+          and monotonicity of their modes) are surveyed and summarized by:
+        </p>
+<p>
+          Andrea van Aubel & Wolfgang Gawronski, Applied Mathematics and Computation,
+          141 (2003) 3-12.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nc_chi_squared_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_t_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_t_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/nc_t_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,405 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Noncentral T Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="nc_f_dist.html" title="Noncentral F Distribution">
+<link rel="next" href="normal_dist.html" title="Normal (Gaussian) Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nc_f_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="normal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_nc_t_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.nc_t_dist"></a><a class="link" href="nc_t_dist.html" title="Noncentral T Distribution">Noncentral T
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_t_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">non_central_t_distribution</span><span class="special"><></span> <span class="identifier">non_central_t</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">non_central_t_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">non_central_t_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">delta</span><span class="special">);</span>
+
+   <span class="comment">// Accessor to degrees_of_freedom parameter v:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Accessor to non-centrality parameter delta:</span>
+   <span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The noncentral T distribution is a generalization of the <a class="link" href="students_t_dist.html" title="Students t Distribution">Students
+          t Distribution</a>. Let X have a normal distribution with mean δ and variance
+          1, and let ν S<sup>2</sup> have a chi-squared distribution with degrees of freedom ν.
+          Assume that X and S<sup>2</sup> are independent. The distribution of t<sub>ν</sub>(δ)=X/S is called
+          a noncentral t distribution with degrees of freedom ν and noncentrality parameter
+          δ.
+        </p>
+<p>
+          This gives the following PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_t_ref1.png"></span>
+        </p>
+<p>
+          where <sub>1</sub>F<sub>1</sub>(a;b;x) is a confluent hypergeometric function.
+        </p>
+<p>
+          The following graph illustrates how the distribution changes for different
+          values of ν and δ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/nc_t_pdf.png" align="middle"></span>
+  <span class="inlinemediaobject"><img src="../../../../graphs/nc_t_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_t_dist.member_functions"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist_ref.dists.nc_t_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">non_central_t_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">delta</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a non-central t distribution with degrees of freedom parameter
+          <span class="emphasis"><em>v</em></span> and non-centrality parameter <span class="emphasis"><em>delta</em></span>.
+        </p>
+<p>
+          Requires <span class="emphasis"><em>v</em></span> > 0 (including positive infinity) and
+          finite <span class="emphasis"><em>delta</em></span>, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>v</em></span> from which this object was
+          constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">non_centrality</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the non-centrality parameter <span class="emphasis"><em>delta</em></span> from which
+          this object was constructed.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_t_dist.non_member_accessors"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist_ref.dists.nc_t_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [-∞, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_t_dist.accuracy"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist_ref.dists.nc_t_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The following table shows the peak errors (in units of epsilon)
+          found on various platforms with various floating-point types. Unless otherwise
+          specified, any floating-point type that is narrower than the one shown
+          will have <a class="link" href="../../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+          zero error</a>.
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.errors_in_cdf_of_the_noncentral_"></a><p class="title"><b>Table 2.6. Errors In CDF of the Noncentral T Distribution</b></p>
+<div class="table-contents"><table class="table" summary="Errors In CDF of the Noncentral T Distribution">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Significand Size (bits)
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Platform and Compiler
+                  </p>
+                </th>
+<th>
+                  <p>
+                    ν, δ < 600
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    53
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Win32, Visual C++ 8
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=120 Mean=26
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    RedHat Linux IA32, gcc-4.1.1
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=121 Mean=26
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    64
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Redhat Linux IA64, gcc-3.4.4
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=122 Mean=25
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    113
+                  </p>
+                </td>
+<td>
+                  <p>
+                    HPUX IA64, aCC A.06.06
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Peak=115 Mean=24
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            The complexity of the current algorithm is dependent upon δ<sup>2</sup>: consequently
+            the time taken to evaluate the CDF increases rapidly for δ > 500, likewise
+            the accuracy decreases rapidly for very large δ.
+          </p></td></tr>
+</table></div>
+<p>
+          Accuracy for the quantile and PDF functions should be broadly similar.
+          The <span class="emphasis"><em>mode</em></span> is determined numerically and cannot in principal
+          be more accurate than the square root of floating-point type FPT epsilon,
+          accessed using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">epsilon</span><span class="special"><</span><span class="identifier">FPT</span><span class="special">>()</span></code>.
+          For 64-bit <code class="computeroutput"><span class="keyword">double</span></code>, epsilon
+          is about 1e-16, so the fractional accuracy is limited to 1e-8.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_t_dist.tests"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist_ref.dists.nc_t_dist.tests">Tests</a>
+        </h5>
+<p>
+          There are two sets of tests of this distribution:
+        </p>
+<p>
+          Basic sanity checks compare this implementation to the test values given
+          in "Computing discrete mixtures of continuous distributions: noncentral
+          chisquare, noncentral t and the distribution of the square of the sample
+          multiple correlation coefficient." Denise Benton, K. Krishnamoorthy,
+          Computational Statistics & Data Analysis 43 (2003) 249-267.
+        </p>
+<p>
+          Accuracy checks use test data computed with this implementation and arbitary
+          precision interval arithmetic: this test data is believed to be accurate
+          to at least 50 decimal places.
+        </p>
+<p>
+          The cases of large (or infinite) ν and/or large δ has received special treatment
+          to avoid catastrophic loss of accuracy. New tests have been added to confirm
+          the improvement achieved.
+        </p>
+<p>
+          From Boost 1.52, degrees of freedom ν can be +∞
+when the normal distribution
+          located at δ
+(equivalent to the central Student's t distribution) is used
+          in place for accuracy and speed.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.nc_t_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.nc_t_dist.implementation"></a></span><a class="link" href="nc_t_dist.html#math_toolkit.dist_ref.dists.nc_t_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          The CDF is computed using a modification of the method described in "Computing
+          discrete mixtures of continuous distributions: noncentral chisquare, noncentral
+          t and the distribution of the square of the sample multiple correlation
+          coefficient." Denise Benton, K. Krishnamoorthy, Computational Statistics
+          & Data Analysis 43 (2003) 249-267.
+        </p>
+<p>
+          This uses the following formula for the CDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_t_ref2.png"></span>
+        </p>
+<p>
+          Where I<sub>x</sub>(a,b) is the incomplete beta function, and Φ(x) is the normal CDF
+          at x.
+        </p>
+<p>
+          Iteration starts at the largest of the Poisson weighting terms (at i =
+          δ<sup>2</sup> / 2) and then proceeds in both directions as per Benton and Krishnamoorthy's
+          paper.
+        </p>
+<p>
+          Alternatively, by considering what happens when t = ∞, we have x = 1, and
+          therefore I<sub>x</sub>(a,b) = 1 and:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_t_ref3.png"></span>
+        </p>
+<p>
+          From this we can easily show that:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_t_ref4.png"></span>
+        </p>
+<p>
+          and therefore we have a means to compute either the probability or its
+          complement directly without the risk of cancellation error. The crossover
+          criterion for choosing whether to calculate the CDF or its complement is
+          the same as for the <a class="link" href="nc_beta_dist.html" title="Noncentral Beta Distribution">Noncentral
+          Beta Distribution</a>.
+        </p>
+<p>
+          The PDF can be computed by a very similar method using:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/nc_t_ref5.png"></span>
+        </p>
+<p>
+          Where I<sub>x</sub><sup>'</sup>(a,b) is the derivative of the incomplete beta function.
+        </p>
+<p>
+          For both the PDF and CDF we switch to approximating the distribution by
+          a Student's t distribution centred on δ when ν is very large. The crossover
+          location appears to be when δ/(4ν) < ε, this location was estimated by
+          inspection of equation 2.6 in "A Comparison of Approximations To Percentiles
+          of the Noncentral t-Distribution". H. Sahai and M. M. Ojeda, Revista
+          Investigacion Operacional Vol 21, No 2, 2000, page 123.
+        </p>
+<p>
+          Equation 2.6 is a Fisher-Cornish expansion by Eeden and Johnson. The second
+          term includes the ratio δ/(4ν), so when this term become negligible, this
+          and following terms can be ignored, leaving just Student's t distribution
+          centred on δ.
+        </p>
+<p>
+          This was also confirmed by experimental testing.
+        </p>
+<p>
+          See also
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              "Some Approximations to the Percentage Points of the Noncentral
+              t-Distribution". C. van Eeden. International Statistical Review,
+              29, 4-31.
+            </li>
+<li class="listitem">
+              "Continuous Univariate Distributions". N.L. Johnson, S. Kotz
+              and N. Balkrishnan. 1995. John Wiley and Sons New York.
+            </li>
+</ul></div>
+<p>
+          The quantile is calculated via the usual <a class="link" href="../../internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">derivative-free
+          root-finding techniques</a>, with the initial guess taken as the quantile
+          of a normal approximation to the noncentral T.
+        </p>
+<p>
+          There is no closed form for the mode, so this is computed via functional
+          maximisation of the PDF.
+        </p>
+<p>
+          The remaining functions (mean, variance etc) are implemented using the
+          formulas given in Weisstein, Eric W. "Noncentral Student's t-Distribution."
+          From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/NoncentralStudentst-Distribution.html
+          and in the <a href="http://reference.wolfram.com/mathematica/ref/NoncentralStudentTDistribution.html" target="_top">Mathematica
+          documentation</a>.
+        </p>
+<p>
+          Some analytic properties of noncentral distributions (particularly unimodality,
+          and monotonicity of their modes) are surveyed and summarized by:
+        </p>
+<p>
+          Andrea van Aubel & Wolfgang Gawronski, Applied Mathematics and Computation,
+          141 (2003) 3-12.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nc_f_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="normal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/negative_binomial_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/negative_binomial_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,873 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Negative Binomial Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="lognormal_dist.html" title="Log Normal Distribution">
+<link rel="next" href="nc_beta_dist.html" title="Noncentral Beta Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="lognormal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_beta_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_negative_binomial_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist"></a><a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+        Binomial Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">negative_binomial_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><></span> <span class="identifier">negative_binomial</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">negative_binomial_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Constructor from successes and success_fraction:</span>
+   <span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+
+   <span class="comment">// Parameter accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// Bounds on success fraction:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// alpha</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// alpha</span>
+
+   <span class="comment">// Estimate min/max number of trials:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// Number of failures.</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// Success fraction.</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// Probability threshold alpha.</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// Number of failures.</span>
+      <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// Success fraction.</span>
+      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// Probability threshold alpha.</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The class type <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span></code>
+          represents a <a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution" target="_top">negative_binomial
+          distribution</a>: it is used when there are exactly two mutually exclusive
+          outcomes of a <a href="http://en.wikipedia.org/wiki/Bernoulli_trial" target="_top">Bernoulli
+          trial</a>: these outcomes are labelled "success" and "failure".
+        </p>
+<p>
+          For k + r Bernoulli trials each with success fraction p, the negative_binomial
+          distribution gives the probability of observing k failures and r successes
+          with success on the last trial. The negative_binomial distribution assumes
+          that success_fraction p is fixed for all (k + r) trials.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            The random variable for the negative binomial distribution is the number
+            of trials, (the number of successes is a fixed property of the distribution)
+            whereas for the binomial, the random variable is the number of successes,
+            for a fixed number of trials.
+          </p></td></tr>
+</table></div>
+<p>
+          It has the PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/neg_binomial_ref.png"></span>
+        </p>
+<p>
+          The following graph illustrate how the PDF varies as the success fraction
+          <span class="emphasis"><em>p</em></span> changes:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/negative_binomial_pdf_1.png" align="middle"></span>
+        </p>
+<p>
+          Alternatively, this graph shows how the shape of the PDF varies as the
+          number of successes changes:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/negative_binomial_pdf_2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.related_distributions"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.related_distributions">Related
+          Distributions</a>
+        </h5>
+<p>
+          The name negative binomial distribution is reserved by some to the case
+          where the successes parameter r is an integer. This integer version is
+          also called the <a href="http://mathworld.wolfram.com/PascalDistribution.html" target="_top">Pascal
+          distribution</a>.
+        </p>
+<p>
+          This implementation uses real numbers for the computation throughout (because
+          it uses the <span class="bold"><strong>real-valued</strong></span> incomplete beta
+          function family of functions). This real-valued version is also called
+          the Polya Distribution.
+        </p>
+<p>
+          The Poisson distribution is a generalization of the Pascal distribution,
+          where the success parameter r is an integer: to obtain the Pascal distribution
+          you must ensure that an integer value is provided for r, and take integer
+          values (floor or ceiling) from functions that return a number of successes.
+        </p>
+<p>
+          For large values of r (successes), the negative binomial distribution converges
+          to the Poisson distribution.
+        </p>
+<p>
+          The geometric distribution is a special case where the successes parameter
+          r = 1, so only a first and only success is required. geometric(p) = negative_binomial(1,
+          p).
+        </p>
+<p>
+          The Poisson distribution is a special case for large successes
+        </p>
+<p>
+          poisson(λ) = lim <sub>r → ∞</sub>    negative_binomial(r, r / (λ + r)))
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The Negative Binomial distribution is a discrete distribution: internally,
+            functions like the <code class="computeroutput"><span class="identifier">cdf</span></code>
+            and <code class="computeroutput"><span class="identifier">pdf</span></code> are treated "as
+            if" they are continuous functions, but in reality the results returned
+            from these functions only have meaning if an integer value is provided
+            for the random variate argument.
+          </p>
+<p>
+            The quantile function will by default return an integer result that has
+            been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower quantiles
+            (where the probability is less than 0.5) are rounded downward, and upper
+            quantiles (where the probability is greater than 0.5) are rounded upwards.
+            This behaviour ensures that if an X% quantile is requested, then <span class="emphasis"><em>at
+            least</em></span> the requested coverage will be present in the central
+            region, and <span class="emphasis"><em>no more than</em></span> the requested coverage
+            will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently, or even return a real-valued result using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on the Negative Binomial distribution. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.member_functions"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.construct"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.construct">Construct</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+          Constructor: <span class="emphasis"><em>r</em></span> is the total number of successes,
+          <span class="emphasis"><em>p</em></span> is the probability of success of a single trial.
+        </p>
+<p>
+          Requires: <code class="computeroutput"><span class="identifier">r</span> <span class="special">></span>
+          <span class="number">0</span></code> and <code class="computeroutput"><span class="number">0</span>
+          <span class="special"><=</span> <span class="identifier">p</span>
+          <span class="special"><=</span> <span class="number">1</span></code>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.accessors"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.accessors">Accessors</a>
+        </h6>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// successes / trials (0 <= p <= 1)</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>p</em></span> from which this distribution
+          was constructed.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// required successes (r > 0)</span>
+</pre>
+<p>
+          Returns the parameter <span class="emphasis"><em>r</em></span> from which this distribution
+          was constructed.
+        </p>
+<p>
+          The best method of calculation for the following functions is disputed:
+          see <a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a> for more discussion.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p">Lower
+          Bound on Parameter p</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+  <span class="identifier">RealType</span> <span class="identifier">failures</span><span class="special">,</span>
+  <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+  <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">)</span> <span class="comment">// (0 <= alpha <= 1), 0.05 equivalent to 95% confidence.</span>
+</pre>
+<p>
+          Returns a <span class="bold"><strong>lower bound</strong></span> on the success fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">failures</span></dt>
+<dd><p>
+                The total number of failures before the <span class="emphasis"><em>r</em></span>th
+                success.
+              </p></dd>
+<dt><span class="term">successes</span></dt>
+<dd><p>
+                The number of successes required.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>less than</strong></span> the value
+                returned.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> failures and <span class="emphasis"><em>r</em></span>
+          successes from <span class="emphasis"><em>n</em></span> = k + r trials the best estimate
+          for the success fraction is simply <span class="emphasis"><em>r/n</em></span>, but if you
+          want to be 95% sure that the true value is <span class="bold"><strong>greater
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>min</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+                    <span class="identifier">failures</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">See
+          negative binomial confidence interval example.</a>
+        </p>
+<p>
+          This function uses the Clopper-Pearson method of computing the lower bound
+          on the success fraction, whilst many texts refer to this method as giving
+          an "exact" result in practice it produces an interval that guarantees
+          <span class="emphasis"><em>at least</em></span> the coverage required, and may produce pessimistic
+          estimates for some combinations of <span class="emphasis"><em>failures</em></span> and <span class="emphasis"><em>successes</em></span>.
+          See:
+        </p>
+<p>
+          <a href="http://www.ucs.louisiana.edu/~kxk4695/Discrete_new.pdf" target="_top">Yong
+          Cai and K. Krishnamoorthy, A Simple Improved Inferential Method for Some
+          Discrete Distributions. Computational statistics and data analysis, 2005,
+          vol. 48, no3, 605-621</a>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p">Upper
+          Bound on Parameter p</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// (0 <= alpha <= 1), 0.05 equivalent to 95% confidence.</span>
+</pre>
+<p>
+          Returns an <span class="bold"><strong>upper bound</strong></span> on the success
+          fraction:
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">trials</span></dt>
+<dd><p>
+                The total number of trials conducted.
+              </p></dd>
+<dt><span class="term">successes</span></dt>
+<dd><p>
+                The number of successes that occurred.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The largest acceptable probability that the true value of the success
+                fraction is <span class="bold"><strong>greater than</strong></span> the value
+                returned.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example, if you observe <span class="emphasis"><em>k</em></span> successes from <span class="emphasis"><em>n</em></span>
+          trials the best estimate for the success fraction is simply <span class="emphasis"><em>k/n</em></span>,
+          but if you want to be 95% sure that the true value is <span class="bold"><strong>less
+          than</strong></span> some value, <span class="emphasis"><em>p<sub>max</sub></em></span>, then:
+        </p>
+<pre class="programlisting"><span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+                    <span class="identifier">r</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">See
+          negative binomial confidence interval example.</a>
+        </p>
+<p>
+          This function uses the Clopper-Pearson method of computing the lower bound
+          on the success fraction, whilst many texts refer to this method as giving
+          an "exact" result in practice it produces an interval that guarantees
+          <span class="emphasis"><em>at least</em></span> the coverage required, and may produce pessimistic
+          estimates for some combinations of <span class="emphasis"><em>failures</em></span> and <span class="emphasis"><em>successes</em></span>.
+          See:
+        </p>
+<p>
+          <a href="http://www.ucs.louisiana.edu/~kxk4695/Discrete_new.pdf" target="_top">Yong
+          Cai and K. Krishnamoorthy, A Simple Improved Inferential Method for Some
+          Discrete Distributions. Computational statistics and data analysis, 2005,
+          vol. 48, no3, 605-621</a>.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h6"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_e"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_e">Estimating
+          Number of Trials to Ensure at Least a Certain Number of Failures</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of failures.</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction.</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).</span>
+</pre>
+<p>
+          This functions estimates the number of trials required to achieve a certain
+          probability that <span class="bold"><strong>more than k failures will be observed</strong></span>.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The target number of failures to be observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of <span class="emphasis"><em>success</em></span> for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable risk that only k failures or fewer will be
+                observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the smallest number of trials we must conduct to be 95% sure of
+          seeing 10 failures that occur with frequency one half.
+        </p>
+<p>
+          <a class="link" href="../../stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">Worked
+          Example.</a>
+        </p>
+<p>
+          This function uses numeric inversion of the negative binomial distribution
+          to obtain the result: another interpretation of the result, is that it
+          finds the number of trials (success+failures) that will lead to an <span class="emphasis"><em>alpha</em></span>
+          probability of observing k failures or fewer.
+        </p>
+<h6>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h7"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_0"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_0">Estimating
+          Number of Trials to Ensure a Maximum Number of Failures or Less</a>
+        </h6>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span>     <span class="comment">// number of failures.</span>
+   <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span>     <span class="comment">// success fraction.</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).</span>
+</pre>
+<p>
+          This functions estimates the maximum number of trials we can conduct and
+          achieve a certain probability that <span class="bold"><strong>k failures or
+          fewer will be observed</strong></span>.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">k</span></dt>
+<dd><p>
+                The maximum number of failures to be observed.
+              </p></dd>
+<dt><span class="term">p</span></dt>
+<dd><p>
+                The probability of <span class="emphasis"><em>success</em></span> for each trial.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable <span class="emphasis"><em>risk</em></span> that more than k
+                failures will be observed.
+              </p></dd>
+</dl>
+</div>
+<p>
+          For example:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1.0</span><span class="special">-</span><span class="number">1.0</span><span class="special">/</span><span class="number">1000000</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the largest number of trials we can conduct and still be 95% sure
+          of seeing no failures that occur with frequency one in one million.
+        </p>
+<p>
+          This function uses numeric inversion of the negative binomial distribution
+          to obtain the result: another interpretation of the result, is that it
+          finds the number of trials (success+failures) that will lead to an <span class="emphasis"><em>alpha</em></span>
+          probability of observing more than k failures.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h8"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.non_member_accessors"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          However it's worth taking a moment to define what these actually mean in
+          the context of this distribution:
+        </p>
+<div class="table">
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.meaning_of_the_non_member_access"></a><p class="title"><b>Table 2.3. Meaning of the non-member accessors.</b></p>
+<div class="table-contents"><table class="table" summary="Meaning of the non-member accessors.">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Meaning
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>exactly k
+                    failures</strong></span> from k+r trials with success fraction p.
+                    For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+                    Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>k failures
+                    or fewer</strong></span> from k+r trials with success fraction p and
+                    success on the last trial. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of
+                    the Cumulative Distribution Function</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The probability of obtaining <span class="bold"><strong>more than
+                    k failures</strong></span> from k+r trials with success fraction p
+                    and success on the last trial. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">))</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>greatest</strong></span> number of failures
+                    k expected to be observed from k+r trials with success fraction
+                    p, at probability P. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the real result. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">)</span></pre>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile
+                    from the complement of the probability</a>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <span class="bold"><strong>smallest</strong></span> number of failures
+                    k expected to be observed from k+r trials with success fraction
+                    p, at probability P. Note that the value returned is a real-number,
+                    and not an integer. Depending on the use case you may want to
+                    take either the floor or ceiling of the real result. For example:
+                  </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">))</span></pre>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h9"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.accuracy"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          This distribution is implemented using the incomplete beta functions <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>:
+          please refer to these functions for information on accuracy.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.negative_binomial_dist.h10"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.negative_binomial_dist.implementation"></a></span><a class="link" href="negative_binomial_dist.html#math_toolkit.dist_ref.dists.negative_binomial_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table, <span class="emphasis"><em>p</em></span> is the probability that
+          any one trial will be successful (the success fraction), <span class="emphasis"><em>r</em></span>
+          is the number of successes, <span class="emphasis"><em>k</em></span> is the number of failures,
+          <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    pdf = exp(lgamma(r + k) - lgamma(r) - lgamma(k+1)) * pow(p, r)
+                    * pow((1-p), k)
+                  </p>
+                  <p>
+                    Implementation is in terms of <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>:
+                  </p>
+                  <p>
+                    (p/(r + k)) * ibeta_derivative(r, static_cast<RealType>(k+1),
+                    p) The function <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>
+                    is used here, since it has already been optimised for the lowest
+                    possible error - indeed this is really just a thin wrapper around
+                    part of the internals of the incomplete beta function.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    cdf = I<sub>p</sub>(r, k+1) = ibeta(r, k+1, p)
+                  </p>
+                  <p>
+                    = ibeta(r, static_cast<RealType>(k+1), p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation:
+                  </p>
+                  <p>
+                    1 - cdf = I<sub>p</sub>(k+1, r)
+                  </p>
+                  <p>
+                    = ibetac(r, static_cast<RealType>(k+1), p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibeta_invb(r, p, P) - 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibetac_invb(r, p, Q) -1)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">r</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">)/</span><span class="identifier">p</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">r</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">)</span>
+                    <span class="special">/</span> <span class="identifier">p</span>
+                    <span class="special">*</span> <span class="identifier">p</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">floor</span><span class="special">((</span><span class="identifier">r</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">p</span><span class="special">)/</span><span class="identifier">p</span><span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="special">(</span><span class="number">2</span>
+                    <span class="special">-</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">r</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">p</span><span class="special">))</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="number">6</span> <span class="special">/</span>
+                    <span class="identifier">r</span> <span class="special">+</span>
+                    <span class="special">(</span><span class="identifier">p</span>
+                    <span class="special">*</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="identifier">r</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">p</span>
+                    <span class="special">)</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="number">6</span> <span class="special">/</span>
+                    <span class="identifier">r</span> <span class="special">+</span>
+                    <span class="special">(</span><span class="identifier">p</span>
+                    <span class="special">*</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">/</span>
+                    <span class="identifier">r</span> <span class="special">*</span>
+                    <span class="special">(</span><span class="number">1</span>
+                    <span class="special">-</span> <span class="identifier">p</span>
+                    <span class="special">)</span> <span class="special">-</span><span class="number">3</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    parameter estimation member functions
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibeta_inv(successes, failures + 1, alpha)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibetac_inv(successes, failures, alpha) plus see comments in code.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_minimum_number_of_trials</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibeta_inva(k + 1, p, alpha)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">find_maximum_number_of_trials</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    ibetac_inva(k + 1, p, alpha)
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Implementation notes:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              The real concept type (that deliberately lacks the Lanczos approximation),
+              was found to take several minutes to evaluate some extreme test values,
+              so the test has been disabled for this type.
+            </li>
+<li class="listitem">
+              Much greater speed, and perhaps greater accuracy, might be achieved
+              for extreme values by using a normal approximation. This is NOT been
+              tested or implemented.
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lognormal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nc_beta_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/normal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/normal_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,315 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Normal (Gaussian) Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="nc_t_dist.html" title="Noncentral T Distribution">
+<link rel="next" href="pareto.html" title="Pareto Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nc_t_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="pareto.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_normal_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.normal_dist"></a><a class="link" href="normal_dist.html" title="Normal (Gaussian) Distribution">Normal (Gaussian)
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">normal_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">normal_distribution</span><span class="special"><></span> <span class="identifier">normal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">normal_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// location.</span>
+   <span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// scale.</span>
+   <span class="comment">// Synonyms, provided to allow generic use of find_location and find_scale.</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The normal distribution is probably the most well known statistical distribution:
+          it is also known as the Gaussian Distribution. A normal distribution with
+          mean zero and standard deviation one is known as the <span class="emphasis"><em>Standard
+          Normal Distribution</em></span>.
+        </p>
+<p>
+          Given mean μ  and standard deviation σ  it has the PDF:
+        </p>
+<p>
+              <span class="inlinemediaobject"><img src="../../../../equations/normal_ref1.png"></span>
+        </p>
+<p>
+          The variation the PDF with its parameters is illustrated in the following
+          graph:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/normal_pdf.png" align="middle"></span>
+        </p>
+<p>
+          The cumulative distribution function is given by
+        </p>
+<p>
+              <span class="inlinemediaobject"><img src="../../../../equations/normal_cdf.png"></span>
+        </p>
+<p>
+          and illustrated by this graph
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/normal_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.normal_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.normal_dist.member_functions"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a normal distribution with mean <span class="emphasis"><em>mean</em></span> and
+          standard deviation <span class="emphasis"><em>sd</em></span>.
+        </p>
+<p>
+          Requires sd > 0, otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is called.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          both return the <span class="emphasis"><em>mean</em></span> of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          both return the <span class="emphasis"><em>standard deviation</em></span> of this distribution.
+          (Redundant location and scale function are provided to match other similar
+          distributions, allowing the functions find_location and find_scale to be
+          used generically).
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.normal_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.normal_dist.non_member_accessors"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [-[max_value], +[min_value]]. However,
+          the pdf of +∞ and -∞ = 0 is also supported, and cdf at -∞ = 0, cdf at +∞ = 1, and
+          complement cdf -∞ = 1 and +∞ = 0, if RealType permits.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.normal_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.normal_dist.accuracy"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The normal distribution is implemented in terms of the <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">error
+          function</a>, and as such should have very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.normal_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.normal_dist.implementation"></a></span><a class="link" href="normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>m</em></span> is the mean of the distribution,
+          and <span class="emphasis"><em>s</em></span> is its standard deviation.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = e<sup>-(x-m)<sup>2</sup>/(2s<sup>2</sup>)</sup> / (s * sqrt(2*pi))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = 0.5 * <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">erfc</a>(-(x-m)/(s*sqrt(2)))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = 0.5 * <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">erfc</a>((x-m)/(s*sqrt(2)))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = m - s * sqrt(2) * <a class="link" href="../../sf_erf/error_inv.html" title="Error Function Inverses">erfc_inv</a>(2*p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = m + s * sqrt(2) * <a class="link" href="../../sf_erf/error_inv.html" title="Error Function Inverses">erfc_inv</a>(2*p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean and standard deviation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same as <code class="computeroutput"><span class="identifier">dist</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">dist</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same as the mean.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    median
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The same as the mean.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nc_t_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="pareto.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/pareto.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/pareto.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,340 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Pareto Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="normal_dist.html" title="Normal (Gaussian) Distribution">
+<link rel="next" href="poisson_dist.html" title="Poisson Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="normal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="poisson_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_pareto">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.pareto"></a><a class="link" href="pareto.html" title="Pareto Distribution">Pareto Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">pareto</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">pareto_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">pareto_distribution</span><span class="special"><></span> <span class="identifier">pareto</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">pareto_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">pareto_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/pareto_distribution" target="_top">Pareto
+          distribution</a> is a continuous distribution with the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function (pdf)</a>:
+        </p>
+<p>
+          f(x; α, β) = αβ<sup>α</sup> / x<sup>α+ 1</sup>
+        </p>
+<p>
+          For shape parameter α   > 0, and scale parameter β   > 0. If x < β  , the
+          pdf is zero.
+        </p>
+<p>
+          The <a href="http://mathworld.wolfram.com/ParetoDistribution.html" target="_top">Pareto
+          distribution</a> often describes the larger compared to the smaller.
+          A classic example is that 80% of the wealth is owned by 20% of the population.
+        </p>
+<p>
+          The following graph illustrates how the PDF varies with the scale parameter
+          β:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/pareto_pdf1.png" align="middle"></span>
+        </p>
+<p>
+          And this graph illustrates how the PDF varies with the shape parameter
+          α:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/pareto_pdf2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.related_distributions"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.related_distributions">Related
+          distributions</a>
+        </h5>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.member_functions"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.member_functions">Member Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">pareto_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/pareto_distribution" target="_top">pareto
+          distribution</a> with shape <span class="emphasis"><em>shape</em></span> and scale <span class="emphasis"><em>scale</em></span>.
+        </p>
+<p>
+          Requires that the <span class="emphasis"><em>shape</em></span> and <span class="emphasis"><em>scale</em></span>
+          parameters are both greater than zero, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.non_member_accessors"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The supported domain of the random variable is [scale, ∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.accuracy"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Pareto distribution is implemented in terms of the standard library
+          <code class="computeroutput"><span class="identifier">exp</span></code> functions plus <a class="link" href="../../powers/expm1.html" title="expm1">expm1</a> and so should have very
+          small errors, usually only a few epsilon.
+        </p>
+<p>
+          If probability is near to unity (or the complement of a probability near
+          zero) see also <a class="link" href="../../stat_tut/overview/complements.html#why_complements">why complements?</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.implementation"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table α   is the shape parameter of the distribution, and
+          β   is its scale parameter, <span class="emphasis"><em>x</em></span> is the random variate,
+          <span class="emphasis"><em>p</em></span> is the probability and its complement <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf p = αβ<sup>α</sup>/x<sup>α +1</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: cdf p = 1 - (β   / x)<sup>α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = 1 - p = -(β   / x)<sup>α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β / (1 - p)<sup>1/α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β / (q)<sup>1/α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    αβ / (β - 1)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    βα<sup>2</sup> / (β - 1)<sup>2</sup> (β - 2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    α
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/ParetoDistribution.html" target="_top">Weisstein,
+                    Eric W. "Pareto Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/ParetoDistribution.html" target="_top">Weisstein,
+                    Eric W. "Pareto Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/ParetoDistribution.html" target="_top">Weisstein,
+                    Eric W. "pareto Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.pareto.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.pareto.references"></a></span><a class="link" href="pareto.html#math_toolkit.dist_ref.dists.pareto.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/pareto_distribution" target="_top">Pareto
+              Distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/paretoDistribution.html" target="_top">Weisstein,
+              Eric W. "Pareto Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+<li class="listitem">
+              Handbook of Statistical Distributions with Applications, K Krishnamoorthy,
+              ISBN 1-58488-635-8, Chapter 23, pp 257 - 267. (Note the meaning of
+              a and b is reversed in Wolfram and Krishnamoorthy).
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="normal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="poisson_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/poisson_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/poisson_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,320 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Poisson Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="pareto.html" title="Pareto Distribution">
+<link rel="next" href="rayleigh.html" title="Rayleigh Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="pareto.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="rayleigh.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_poisson_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.poisson_dist"></a><a class="link" href="poisson_dist.html" title="Poisson Distribution">Poisson Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">poisson</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">poisson_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">poisson_distribution</span><span class="special"><></span> <span class="identifier">poisson</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">poisson_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+  <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+  <span class="identifier">poisson_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Constructor.</span>
+  <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// Accessor.</span>
+<span class="special">}</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces boost::math</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Poisson_distribution" target="_top">Poisson
+          distribution</a> is a well-known statistical discrete distribution.
+          It expresses the probability of a number of events (or failures, arrivals,
+          occurrences ...) occurring in a fixed period of time, provided these events
+          occur with a known mean rate λ  
+(events/time), and are independent of the
+          time since the last event.
+        </p>
+<p>
+          The distribution was discovered by Simé on-Denis Poisson (1781 to 1840).
+        </p>
+<p>
+          It has the Probability Mass Function:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/poisson_ref1.png"></span>
+        </p>
+<p>
+          for k events, with an expected number of events λ.
+        </p>
+<p>
+          The following graph illustrates how the PDF varies with the parameter λ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/poisson_pdf_1.png" align="middle"></span>
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            The Poisson distribution is a discrete distribution: internally, functions
+            like the <code class="computeroutput"><span class="identifier">cdf</span></code> and <code class="computeroutput"><span class="identifier">pdf</span></code> are treated "as if" they
+            are continuous functions, but in reality the results returned from these
+            functions only have meaning if an integer value is provided for the random
+            variate argument.
+          </p>
+<p>
+            The quantile function will by default return an integer result that has
+            been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower quantiles
+            (where the probability is less than 0.5) are rounded downward, and upper
+            quantiles (where the probability is greater than 0.5) are rounded upwards.
+            This behaviour ensures that if an X% quantile is requested, then <span class="emphasis"><em>at
+            least</em></span> the requested coverage will be present in the central
+            region, and <span class="emphasis"><em>no more than</em></span> the requested coverage
+            will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently, or even return a real-valued result using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on the Poisson distribution. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.poisson_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.poisson_dist.member_functions"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist_ref.dists.poisson_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">poisson_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a poisson distribution with mean <span class="emphasis"><em>mean</em></span>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>mean</em></span> of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.poisson_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.poisson_dist.non_member_accessors"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist_ref.dists.poisson_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, ∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.poisson_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.poisson_dist.accuracy"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist_ref.dists.poisson_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Poisson distribution is implemented in terms of the incomplete gamma
+          functions <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+          <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> and as such
+          should have low error rates: but refer to the documentation of those functions
+          for more information. The quantile and its complement use the inverse gamma
+          functions and are therefore probably slightly less accurate: this is because
+          the inverse gamma functions are implemented using an iterative method with
+          a lower tolerance to avoid excessive computation.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.poisson_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.poisson_dist.implementation"></a></span><a class="link" href="poisson_dist.html#math_toolkit.dist_ref.dists.poisson_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table λ   is the mean of the distribution, <span class="emphasis"><em>k</em></span>
+          is the random variable, <span class="emphasis"><em>p</em></span> is the probability and
+          <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = e<sup>-λ</sup> λ<sup>k</sup> / k!
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = Γ(k+1, λ) / k! = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>(k+1,
+                    λ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = <a class="link" href="../../sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>(k+1,
+                    λ)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: k = <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a>(λ,
+                    p) - 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: k = <a class="link" href="../../sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>(λ,
+                    q) - 1
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    floor (λ) or ⌊λ⌋
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    1/√λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    3 + 1/λ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    1/λ
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="pareto.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="rayleigh.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/rayleigh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/rayleigh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,337 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rayleigh Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="poisson_dist.html" title="Poisson Distribution">
+<link rel="next" href="skew_normal_dist.html" title="Skew Normal Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="poisson_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="skew_normal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_rayleigh">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.rayleigh"></a><a class="link" href="rayleigh.html" title="Rayleigh Distribution">Rayleigh Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">rayleigh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">rayleigh_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">rayleigh_distribution</span><span class="special"><></span> <span class="identifier">rayleigh</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">rayleigh_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">rayleigh_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">sigma</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Rayleigh_distribution" target="_top">Rayleigh
+          distribution</a> is a continuous distribution with the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function</a>:
+        </p>
+<p>
+          f(x; sigma) = x * exp(-x<sup>2</sup>/2 σ<sup>2</sup>) / σ<sup>2</sup>
+        </p>
+<p>
+          For sigma parameter σ   > 0, and x > 0.
+        </p>
+<p>
+          The Rayleigh distribution is often used where two orthogonal components
+          have an absolute value, for example, wind velocity and direction may be
+          combined to yield a wind speed, or real and imaginary components may have
+          absolute values that are Rayleigh distributed.
+        </p>
+<p>
+          The following graph illustrates how the Probability density Function(pdf)
+          varies with the shape parameter σ:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/rayleigh_pdf.png" align="middle"></span>
+        </p>
+<p>
+          and the Cumulative Distribution Function (cdf)
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/rayleigh_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.related_distributions"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.related_distributions">Related
+          distributions</a>
+        </h5>
+<p>
+          The absolute value of two independent normal distributions X and Y, √ (X<sup>2</sup> +
+          Y<sup>2</sup>) is a Rayleigh distribution.
+        </p>
+<p>
+          The Chi,
+          Rice
+          and Weibull
+          distributions are generalizations of the <a href="http://en.wikipedia.org/wiki/Rayleigh_distribution" target="_top">Rayleigh
+          distribution</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.member_functions"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">rayleigh_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/Rayleigh_distribution" target="_top">Rayleigh
+          distribution</a> with σ <span class="emphasis"><em>sigma</em></span>.
+        </p>
+<p>
+          Requires that the σ parameter is greater than zero, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">sigma</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>sigma</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.non_member_accessors"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, max_value].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.accuracy"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Rayleigh distribution is implemented in terms of the standard library
+          <code class="computeroutput"><span class="identifier">sqrt</span></code> and <code class="computeroutput"><span class="identifier">exp</span></code> and as such should have very low
+          error rates. Some constants such as skewness and kurtosis were calculated
+          using NTL RR type with 150-bit accuracy, about 50 decimal digits.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.implementation"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table σ   is the sigma parameter of the distribution, <span class="emphasis"><em>x</em></span>
+          is the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = x * exp(-x<sup>2</sup>)/2 σ<sup>2</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = 1 - exp(-x<sup>2</sup>/2) σ<sup>2</sup>   = -<a class="link" href="../../powers/expm1.html" title="expm1">expm1</a>(-x<sup>2</sup>/2)
+                    σ<sup>2</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = exp(-x<sup>2</sup>/ 2) * σ<sup>2</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = sqrt(-2 * σ <sup>2</sup>) * log(1 - p)) = sqrt(-2
+                    * σ <sup>2</sup>) * <a class="link" href="../../powers/log1p.html" title="log1p">log1p</a>(-p))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = sqrt(-2 * σ <sup>2</sup>) * log(q))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    σ * sqrt(π/2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    σ<sup>2</sup> * (4 - π/2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    σ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant from <a href="http://mathworld.wolfram.com/RayleighDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant from <a href="http://mathworld.wolfram.com/RayleighDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant from <a href="http://mathworld.wolfram.com/RayleighDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.rayleigh.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.rayleigh.references"></a></span><a class="link" href="rayleigh.html#math_toolkit.dist_ref.dists.rayleigh.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              http://en.wikipedia.org/wiki/Rayleigh_distribution
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/RayleighDistribution.html" target="_top">Weisstein,
+              Eric W. "Rayleigh Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="poisson_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="skew_normal_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/skew_normal_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/skew_normal_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,488 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Skew Normal Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="rayleigh.html" title="Rayleigh Distribution">
+<link rel="next" href="students_t_dist.html" title="Students t Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="rayleigh.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="students_t_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_skew_normal_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist"></a><a class="link" href="skew_normal_dist.html" title="Skew Normal Distribution">Skew
+        Normal Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">skew_normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">skew_normal_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">skew_normal_distribution</span><span class="special"><></span> <span class="identifier">normal</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">skew_normal_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Constructor:</span>
+   <span class="identifier">skew_normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// mean if normal.</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// width, standard deviation if normal.</span>
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// The distribution is right skewed if shape > 0 and is left skewed if shape < 0.</span>
+                          <span class="comment">// The distribution is normal if shape is zero.</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The skew normal distribution is a variant of the most well known Gaussian
+          statistical distribution.
+        </p>
+<p>
+          The skew normal distribution with shape zero resembles the <a href="http://en.wikipedia.org/wiki/Normal_distribution" target="_top">Normal
+          Distribution</a>, hence the latter can be regarded as a special case
+          of the more generic skew normal distribution.
+        </p>
+<p>
+          If the standard (mean = 0, scale = 1) normal distribution probability density
+          function is
+        </p>
+<p>
+               <span class="inlinemediaobject"><img src="../../../../equations/normal01_pdf.png"></span>
+        </p>
+<p>
+          and the cumulative distribution function
+        </p>
+<p>
+               <span class="inlinemediaobject"><img src="../../../../equations/normal01_cdf.png"></span>
+        </p>
+<p>
+          then the PDF
+          of the <a href="http://en.wikipedia.org/wiki/Skew_normal_distribution" target="_top">skew
+          normal distribution</a> with shape parameter α, defined by O'Hagan and
+          Leonhard (1976) is
+        </p>
+<p>
+               <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf0.png"></span>
+        </p>
+<p>
+          Given location
+          ξ, scale
+          ω, and shape
+          α, it can be transformed,
+          to the form:
+        </p>
+<p>
+               <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf.png"></span>
+        </p>
+<p>
+          and CDF:
+        </p>
+<p>
+               <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_cdf.png"></span>
+        </p>
+<p>
+          where <span class="emphasis"><em>T(h,a)</em></span> is Owen's T function, and <span class="emphasis"><em>Φ(x)</em></span>
+          is the normal distribution.
+        </p>
+<p>
+          The variation the PDF and CDF with its parameters is illustrated in the
+          following graphs:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/skew_normal_pdf.png" align="middle"></span>
+  <span class="inlinemediaobject"><img src="../../../../graphs/skew_normal_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.member_functions"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">skew_normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a skew_normal distribution with location ξ, scale ω and shape α.
+        </p>
+<p>
+          Requires scale > 0, otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          is called.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          returns the location ξ of this distribution,
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          returns the scale ω of this distribution,
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          returns the shape α of this distribution.
+        </p>
+<p>
+          (Location and scale function match other similar distributions, allowing
+          the functions <code class="computeroutput"><span class="identifier">find_location</span></code>
+          and <code class="computeroutput"><span class="identifier">find_scale</span></code> to be used
+          generically).
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            While the shape parameter may be chosen arbitrarily (finite), the resulting
+            <span class="bold"><strong>skewness</strong></span> of the distribution is in fact
+            limited to about (-1, 1); strictly, the interval is (-0.9952717, 0.9952717).
+          </p>
+<p>
+            A parameter δ is related to the shape α by δ = α / (1 + α²), and used in the expression
+            for skewness <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_skewness.png"></span>
+
+          </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.references"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://azzalini.stat.unipd.it/SN/" target="_top">Skew-Normal Probability
+              Distribution</a> for many links and bibliography.
+            </li>
+<li class="listitem">
+              <a href="http://azzalini.stat.unipd.it/SN/Intro/intro.html" target="_top">A very
+              brief introduction to the skew-normal distribution</a> by Adelchi
+              Azzalini (2005-11-2).
+            </li>
+<li class="listitem">
+              See a <a href="http://www.tri.org.au/azzalini.html" target="_top">skew-normal
+              function animation</a>.
+            </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.non_member_accessors"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is <span class="emphasis"><em>-[max_value], +[min_value]</em></span>.
+          Infinite values are not supported.
+        </p>
+<p>
+          There are no <a href="http://en.wikipedia.org/wiki/Closed-form_expression" target="_top">closed-form
+          expression</a> known for the mode and median, but these are computed
+          for the
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              mode - by finding the maximum of the PDF.
+            </li>
+<li class="listitem">
+              median - by computing <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="number">1</span><span class="special">/</span><span class="number">2</span><span class="special">)</span></code>.
+            </li>
+</ul></div>
+<p>
+          The maximum of the PDF is sought through searching the root of f'(x)=0.
+        </p>
+<p>
+          Both involve iterative methods that will have lower accuracy than other
+          estimates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.testing"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.testing">Testing</a>
+        </h5>
+<p>
+          The R Project for Statistical Computing
+          using library(sn) described at <a href="http://azzalini.stat.unipd.it/SN/" target="_top">Skew-Normal
+          Probability Distribution</a>, and at <a href="http://cran.r-project.org/web/packages/sn/sn.pd" target="_top">R
+          skew-normal(sn) package</a>.
+        </p>
+<p>
+          Package sn provides functions related to the skew-normal (SN) and the skew-t
+          (ST) probability distributions, both for the univariate and for the the
+          multivariate case, including regression models.
+        </p>
+<p>
+          <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram
+          Mathematica</a> was also used to generate some more accurate spot test
+          data.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.accuracy"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The skew_normal distribution with shape = zero is implemented as a special
+          case, equivalent to the normal distribution in terms of the <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">error
+          function</a>, and therefore should have excellent accuracy.
+        </p>
+<p>
+          The PDF and mean, variance, skewness and kurtosis are also accurately evaluated
+          using <a href="http://en.wikipedia.org/wiki/Analytical_expression" target="_top">analytical
+          expressions</a>. The CDF requires <a href="http://en.wikipedia.org/wiki/Owen%27s_T_function" target="_top">Owen's
+          T function</a> that is evaluated using a Boost C++ <a class="link" href="../../owens_t.html" title="Owen's T function">Owens
+          T</a> implementation of the algorithms of M. Patefield and D. Tandy,
+          Journal of Statistical Software, 5(5), 1-25 (2000); the complicated accuracy
+          of this function is discussed in detail at <a class="link" href="../../owens_t.html" title="Owen's T function">Owens
+          T</a>.
+        </p>
+<p>
+          The median and mode are calculated by iterative root finding, and both
+          will be less accurate.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.implementation"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table, ξ is the location of the distribution, and ω is its
+          scale, and α is its shape.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using: <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf.png"></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using: <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_cdf.png"></span><br> where <span class="emphasis"><em>T(h,a)</em></span>
+                    is Owen's T function, and <span class="emphasis"><em>Φ(x)</em></span> is the normal
+                    distribution.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using: complement of normal distribution + 2 * Owens_t
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Maximum of the pdf is sought through searching the root of f'(x)=0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    -quantile(SN(-location ξ, scale ω, -shapeα), p)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    location
+                  </p>
+                </td>
+<td>
+                  <p>
+                    location ξ
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    scale
+                  </p>
+                </td>
+<td>
+                  <p>
+                    scale ω
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    shape
+                  </p>
+                </td>
+<td>
+                  <p>
+                    shape α
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    median
+                  </p>
+                </td>
+<td>
+                  <p>
+                    quantile(1/2)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_mean.png"></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Maximum of the pdf is sought through searching the root of f'(x)=0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_variance.png"></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_skewness.png"></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    kurtosis excess-3
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_kurt_ex.png"></span>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rayleigh.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="students_t_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/students_t_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/students_t_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,420 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Students t Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="skew_normal_dist.html" title="Skew Normal Distribution">
+<link rel="next" href="triangular_dist.html" title="Triangular Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="skew_normal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="triangular_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_students_t_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.students_t_dist"></a><a class="link" href="students_t_dist.html" title="Students t Distribution">Students
+        t Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">students_t_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">students_t_distribution</span><span class="special"><></span> <span class="identifier">students_t</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">students_t_distribution</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+   <span class="comment">// Construct:</span>
+   <span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+   <span class="comment">// Accessor:</span>
+   <span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// degrees of freedom estimation:</span>
+   <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+      <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">sd</span><span class="special">,</span>
+      <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          A statistical distribution published by William Gosset in 1908. His employer,
+          Guinness Breweries, required him to publish under a pseudonym (possibly
+          to hide that they were using statistics), so he chose "Student".
+          Given N independent measurements, let
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/students_t_dist.png"></span>
+        </p>
+<p>
+          where <span class="emphasis"><em>M</em></span> is the population mean,<span class="emphasis"><em>μ</em></span>
+          is the sample mean, and <span class="emphasis"><em>s</em></span> is the sample variance.
+        </p>
+<p>
+          Student's t-distribution is defined as the distribution of the random variable
+          t which is - very loosely - the "best" that we can do not knowing
+          the true standard deviation of the sample. It has the PDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../equations/students_t_ref1.png"></span>
+        </p>
+<p>
+          The Student's t-distribution takes a single parameter: the number of degrees
+          of freedom of the sample. When the degrees of freedom is <span class="emphasis"><em>one</em></span>
+          then this distribution is the same as the Cauchy-distribution. As the number
+          of degrees of freedom tends towards infinity, then this distribution approaches
+          the normal-distribution. The following graph illustrates how the PDF varies
+          with the degrees of freedom ν:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/students_t_pdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.students_t_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.students_t_dist.member_functions"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist_ref.dists.students_t_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a Student's t-distribution with <span class="emphasis"><em>v</em></span> degrees
+          of freedom.
+        </p>
+<p>
+          Requires <span class="emphasis"><em>v</em></span> > 0, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+          Note that non-integral degrees of freedom are supported, and are meaningful
+          under certain circumstances.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the number of degrees of freedom of this distribution.
+        </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+   <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">sd</span><span class="special">,</span>
+   <span class="identifier">RealType</span> <span class="identifier">hint</span> <span class="special">=</span> <span class="number">100</span><span class="special">);</span>
+</pre>
+<p>
+          Returns the number of degrees of freedom required to observe a significant
+          result in the Student's t test when the mean differs from the "true"
+          mean by <span class="emphasis"><em>difference_from_mean</em></span>.
+        </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">difference_from_mean</span></dt>
+<dd><p>
+                The difference between the true mean and the sample mean that we
+                wish to show is significant.
+              </p></dd>
+<dt><span class="term">alpha</span></dt>
+<dd><p>
+                The maximum acceptable probability of rejecting the null hypothesis
+                when it is in fact true.
+              </p></dd>
+<dt><span class="term">beta</span></dt>
+<dd><p>
+                The maximum acceptable probability of failing to reject the null
+                hypothesis when it is in fact false.
+              </p></dd>
+<dt><span class="term">sd</span></dt>
+<dd><p>
+                The sample standard deviation.
+              </p></dd>
+<dt><span class="term">hint</span></dt>
+<dd><p>
+                A hint for the location to start looking for the result, a good choice
+                for this would be the sample size of a previous borderline Student's
+                t test.
+              </p></dd>
+</dl>
+</div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Remember that for a two-sided test, you must divide alpha by two before
+            calling this function.
+          </p></td></tr>
+</table></div>
+<p>
+          For more information on this function see the <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc222.htm" target="_top">NIST
+          Engineering Statistics Handbook</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.students_t_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.students_t_dist.non_member_accessors"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist_ref.dists.students_t_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [-∞, +∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.students_t_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.students_t_dist.examples"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist_ref.dists.students_t_dist.examples">Examples</a>
+        </h5>
+<p>
+          Various <a class="link" href="../../stat_tut/weg/st_eg.html" title="Student's t Distribution Examples">worked examples</a>
+          are available illustrating the use of the Student's t distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.students_t_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.students_t_dist.accuracy"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist_ref.dists.students_t_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The normal distribution is implemented in terms of the <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete
+          beta function</a> and <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">its
+          inverses</a>, refer to accuracy data on those functions for more information.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.students_t_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.students_t_dist.implementation"></a></span><a class="link" href="students_t_dist.html#math_toolkit.dist_ref.dists.students_t_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table <span class="emphasis"><em>v</em></span> is the degrees of freedom
+          of the distribution, <span class="emphasis"><em>t</em></span> is the random variate, <span class="emphasis"><em>p</em></span>
+          is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = (v / (v + t<sup>2</sup>))<sup>(1+v)/2 </sup> / (sqrt(v) *
+                    <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a>(v/2,
+                    0.5))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relations:
+                  </p>
+                  <p>
+                    p = 1 - z <span class="emphasis"><em>iff t > 0</em></span>
+                  </p>
+                  <p>
+                    p = z <span class="emphasis"><em>otherwise</em></span>
+                  </p>
+                  <p>
+                    where z is given by:
+                  </p>
+                  <p>
+                    <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(v
+                    / 2, 0.5, v / (v + t<sup>2</sup>)) / 2 <span class="emphasis"><em>iff v < 2t<sup>2</sup></em></span>
+                  </p>
+                  <p>
+                    <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(0.5,
+                    v / 2, t<sup>2 </sup> / (v + t<sup>2</sup>) / 2 <span class="emphasis"><em>otherwise</em></span>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = cdf(-t)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: t = sign(p - 0.5) * sqrt(v * y / x)
+                  </p>
+                  <p>
+                    where:
+                  </p>
+                  <p>
+                    x = <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>(v
+                    / 2, 0.5, 2 * min(p, q))
+                  </p>
+                  <p>
+                    y = 1 - x
+                  </p>
+                  <p>
+                    The quantities <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>
+                    are both returned by <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                    without the subtraction implied above.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: t = -quantile(q)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if (v > 2) v / (v - 2) else NaN
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if (v > 3) 0 else NaN
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if (v > 4) 3 * (v - 2) / (v - 4) else NaN
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    if (v > 4) 6 / (df - 4) else NaN
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          If the moment index <span class="emphasis"><em>k</em></span> is less than <span class="emphasis"><em>v</em></span>,
+          then the moment is undefined. Evaluating the moment will throw a <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+          unless ignored by a policy, when it will return <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span></code>
+        </p>
+<p>
+          (For simplicity, we have not implemented the return of infinity in some
+          cases as suggested by <a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution" target="_top">Wikipedia
+          Student's t</a>. See also https://svn.boost.org/trac/boost/ticket/7177.)
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="skew_normal_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="triangular_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/triangular_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/triangular_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,413 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Triangular Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="students_t_dist.html" title="Students t Distribution">
+<link rel="next" href="uniform_dist.html" title="Uniform Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="students_t_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="uniform_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_triangular_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.triangular_dist"></a><a class="link" href="triangular_dist.html" title="Triangular Distribution">Triangular
+        Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">triangular</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+           <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">triangular_distribution</span><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">triangular_distribution</span><span class="special"><></span> <span class="identifier">triangular</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">triangular_distribution</span>
+ <span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+
+    <span class="identifier">triangular_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">mode</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Constructor.</span>
+       <span class="special">:</span> <span class="identifier">m_lower</span><span class="special">(</span><span class="identifier">lower</span><span class="special">),</span> <span class="identifier">m_mode</span><span class="special">(</span><span class="identifier">mode</span><span class="special">),</span> <span class="identifier">m_upper</span><span class="special">(</span><span class="identifier">upper</span><span class="special">)</span> <span class="comment">// Default is -1, 0, +1 triangular distribution.</span>
+    <span class="comment">// Accessor functions.</span>
+    <span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="special">};</span> <span class="comment">// class triangular_distribution</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Triangular_distribution" target="_top">triangular
+          distribution</a> is a continuous
+          <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">probability
+          distribution</a> with a lower limit a, <a href="http://en.wikipedia.org/wiki/Mode_%28statistics%29" target="_top">mode
+          c</a>, and upper limit b.
+        </p>
+<p>
+          The triangular distribution is often used where the distribution is only
+          vaguely known, but, like the <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">uniform
+          distribution</a>, upper and limits are 'known', but a 'best guess',
+          the mode or center point, is also added. It has been recommended as a
+          <a href="http://www.worldscibooks.com/mathematics/etextbook/5720/5720_chap1.pdf" target="_top">proxy
+          for the beta distribution.</a> The distribution is used in business
+          decision making and project planning.
+        </p>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Triangular_distribution" target="_top">triangular
+          distribution</a> is a distribution with the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function</a>:
+        </p>
+<p>
+          f(x) =
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              2(x-a)/(b-a) (c-a) for a <= x <= c
+            </li>
+<li class="listitem">
+              2(b-x)/(b-a)(b-c) for c < x <= b
+            </li>
+</ul></div>
+<p>
+          Parameter a (lower) can be any finite value. Parameter b (upper) can be
+          any finite value > a (lower). Parameter c (mode) a <= c <= b.
+          This is the most probable value.
+        </p>
+<p>
+          The random variate
+          x must also be finite, and is supported lower <= x <= upper.
+        </p>
+<p>
+          The triangular distribution may be appropriate when an assumption of a
+          normal distribution is unjustified because uncertainty is caused by rounding
+          and quantization from analog to digital conversion. Upper and lower limits
+          are known, and the most probable value lies midway.
+        </p>
+<p>
+          The distribution simplifies when the 'best guess' is either the lower or
+          upper limit - a 90 degree angle triangle. The default chosen is the 001
+          triangular distribution which expresses an estimate that the lowest value
+          is the most likely; for example, you believe that the next-day quoted delivery
+          date is most likely (knowing that a quicker delivery is impossible - the
+          postman only comes once a day), and that longer delays are decreasingly
+          likely, and delivery is assumed to never take more than your upper limit.
+        </p>
+<p>
+          The following graph illustrates how the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function PDF</a> varies with the various parameters:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/triangular_pdf.png" align="middle"></span>
+        </p>
+<p>
+          and cumulative distribution function
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/triangular_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.triangular_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.triangular_dist.member_functions"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist_ref.dists.triangular_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">triangular_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">mode</span> <span class="special">=</span> <span class="number">0</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/triangular_distribution" target="_top">triangular
+          distribution</a> with lower <span class="emphasis"><em>lower</em></span> (a) and upper
+          <span class="emphasis"><em>upper</em></span> (b).
+        </p>
+<p>
+          Requires that the <span class="emphasis"><em>lower</em></span>, <span class="emphasis"><em>mode</em></span>
+          and <span class="emphasis"><em>upper</em></span> parameters are all finite, otherwise calls
+          <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>lower</em></span> parameter of this distribution (default
+          -1).
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>mode</em></span> parameter of this distribution (default
+          0).
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>upper</em></span> parameter of this distribution (default+1).
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.triangular_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.triangular_dist.non_member_accessors"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist_ref.dists.triangular_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is \lowerto \upper, and the supported
+          range is lower <= x <= upper.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.triangular_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.triangular_dist.accuracy"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist_ref.dists.triangular_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The triangular distribution is implemented with simple arithmetic operators
+          and so should have errors within an epsilon or two, except quantiles with
+          arguments nearing the extremes of zero and unity.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.triangular_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.triangular_dist.implementation"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist_ref.dists.triangular_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table, a is the <span class="emphasis"><em>lower</em></span> parameter of
+          the distribution, c is the <span class="emphasis"><em>mode</em></span> parameter, b is the
+          <span class="emphasis"><em>upper</em></span> parameter, <span class="emphasis"><em>x</em></span> is the random
+          variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = 0 for x < mode, 2(x-a)/(b-a)(c-a)
+                    else 2*(b-x)/((b-a)(b-c))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: cdf = 0 for x < mode (x-a)<sup>2</sup>/((b-a)(c-a))
+                    else 1 - (b-x)<sup>2</sup>/((b-a)(b-c))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = 1 - p
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    let p0 = (c-a)/(b-a) the point of inflection on the cdf, then
+                    given probability p and q = 1-p:
+                  </p>
+                  <p>
+                    x = sqrt((b-a)(c-a)p) + a ; for p < p0
+                  </p>
+                  <p>
+                    x = c ; for p == p0
+                  </p>
+                  <p>
+                    x = b - sqrt((b-a)(b-c)q) ; for p > p0
+                  </p>
+                  <p>
+                    (See /boost/math/distributions/triangular.hpp
+                    for details.)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    As quantile (See /boost/math/distributions/triangular.hpp
+                    for details.)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (a + b + 3) / 3
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (a<sup>2</sup>+b<sup>2</sup>+c<sup>2</sup> - ab - ac - bc)/18
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    c
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (See /boost/math/distributions/triangular.hpp
+                    for details).
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    12/5
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    -3/5
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Some 'known good' test values were obtained from <a href="http://espse.ed.psu.edu/edpsych/faculty/rhale/hale/507Mat/statlets/free/pdist.htm" target="_top">Statlet:
+          Calculate and plot probability distributions</a>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.triangular_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.triangular_dist.references"></a></span><a class="link" href="triangular_dist.html#math_toolkit.dist_ref.dists.triangular_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Triangular_distribution" target="_top">Wikpedia
+              triangular distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/TriangularDistribution.html" target="_top">Weisstein,
+              Eric W. "Triangular Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+<li class="listitem">
+              Evans, M.; Hastings, N.; and Peacock, B. "Triangular Distribution."
+              Ch. 40 in Statistical Distributions, 3rd ed. New York: Wiley, pp. 187-188,
+              2000, ISBN - 0471371246.
+            </li>
+<li class="listitem">
+              <a href="http://www.brighton-webs.co.uk/distributions/triangular.asp" target="_top">Brighton
+              Webs Ltd. BW D-Calc 1.0 Distribution Calculator</a>
+            </li>
+<li class="listitem">
+              <a href="http://www.worldscibooks.com/mathematics/etextbook/5720/5720_chap1.pdf" target="_top">The
+              Triangular Distribution including its history.</a>
+            </li>
+<li class="listitem">
+              <a href="http://www.measurement.sk/2002/S1/Wimmer2.pdf" target="_top">Gejza Wimmer,
+              Viktor Witkovsky and Tomas Duby, Measurement Science Review, Volume
+              2, Section 1, 2002, Proper Rounding Of The Measurement Results Under
+              The Assumption Of Triangular Distribution.</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="students_t_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="uniform_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/uniform_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/uniform_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,357 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Uniform Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="triangular_dist.html" title="Triangular Distribution">
+<link rel="next" href="weibull_dist.html" title="Weibull Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="triangular_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="weibull_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_uniform_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.uniform_dist"></a><a class="link" href="uniform_dist.html" title="Uniform Distribution">Uniform Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">uniform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+           <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">uniform_distribution</span><span class="special">;</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">uniform_distribution</span><span class="special"><></span> <span class="identifier">uniform</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+ <span class="keyword">class</span> <span class="identifier">uniform_distribution</span>
+ <span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+    <span class="identifier">uniform_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Constructor.</span>
+       <span class="special">:</span> <span class="identifier">m_lower</span><span class="special">(</span><span class="identifier">lower</span><span class="special">),</span> <span class="identifier">m_upper</span><span class="special">(</span><span class="identifier">upper</span><span class="special">)</span> <span class="comment">// Default is standard uniform distribution.</span>
+    <span class="comment">// Accessor functions.</span>
+    <span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+ <span class="special">};</span> <span class="comment">// class uniform_distribution</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The uniform distribution, also known as a rectangular distribution, is
+          a probability distribution that has constant probability.
+        </p>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">continuous
+          uniform distribution</a> is a distribution with the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function</a>:
+        </p>
+<p>
+          f(x) =
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              1 / (upper - lower) for lower < x < upper
+            </li>
+<li class="listitem">
+              zero for x < lower or x > upper
+            </li>
+</ul></div>
+<p>
+          and in this implementation:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+              1 / (upper - lower) for x = lower or x = upper
+            </li></ul></div>
+<p>
+          The choice of x = lower or x = upper is made because statistical use of
+          this distribution judged is most likely: the method of maximum likelihood
+          uses this definition.
+        </p>
+<p>
+          There is also a discrete uniform distribution.
+        </p>
+<p>
+          Parameters lower and upper can be any finite value.
+        </p>
+<p>
+          The random variate
+          x must also be finite, and is supported lower <= x <= upper.
+        </p>
+<p>
+          The lower parameter is also called the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm" target="_top">location
+          parameter</a>, <a href="http://en.wikipedia.org/wiki/Location_parameter" target="_top">that
+          is where the origin of a plot will lie</a>, and (upper - lower) is
+          also called the <a href="http://en.wikipedia.org/wiki/Scale_parameter" target="_top">scale
+          parameter</a>.
+        </p>
+<p>
+          The following graph illustrates how the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function PDF</a> varies with the shape parameter:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/uniform_pdf.png" align="middle"></span>
+        </p>
+<p>
+          Likewise for the CDF:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/uniform_cdf.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.uniform_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.uniform_dist.member_functions"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist_ref.dists.uniform_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">uniform_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/uniform_distribution" target="_top">uniform
+          distribution</a> with lower <span class="emphasis"><em>lower</em></span> (a) and upper
+          <span class="emphasis"><em>upper</em></span> (b).
+        </p>
+<p>
+          Requires that the <span class="emphasis"><em>lower</em></span> and <span class="emphasis"><em>upper</em></span>
+          parameters are both finite; otherwise if infinity or NaN then calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>lower</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>upper</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.uniform_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.uniform_dist.non_member_accessors"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist_ref.dists.uniform_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is any finite value, but the supported
+          range is only <span class="emphasis"><em>lower</em></span> <= x <= <span class="emphasis"><em>upper</em></span>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.uniform_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.uniform_dist.accuracy"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist_ref.dists.uniform_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The uniform distribution is implemented with simple arithmetic operators
+          and so should have errors within an epsilon or two.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.uniform_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.uniform_dist.implementation"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist_ref.dists.uniform_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table a is the <span class="emphasis"><em>lower</em></span> parameter of
+          the distribution, b is the <span class="emphasis"><em>upper</em></span> parameter, <span class="emphasis"><em>x</em></span>
+          is the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
+          = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = 0 for x < a, 1 / (b - a) for a <=
+                    x <= b, 0 for x > b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: cdf = 0 for x < a, (x - a) / (b - a) for
+                    a <= x <= b, 1 for x > b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = 1 - p, (b - x) / (b - a)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = p * (b - a) + a;
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    x = -q * (b - a) + b
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (a + b) / 2
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    (b - a) <sup>2</sup> / 12
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    any value in [a, b] but a is chosen. (Would NaN be better?)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    0
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    -6/5 = -1.2 exactly. (kurtosis - 3)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    9/5
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.uniform_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.uniform_dist.references"></a></span><a class="link" href="uniform_dist.html#math_toolkit.dist_ref.dists.uniform_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">Wikpedia
+              continuous uniform distribution</a>
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/UniformDistribution.html" target="_top">Weisstein,
+              Weisstein, Eric W. "Uniform Distribution." From MathWorld--A
+              Wolfram Web Resource.</a>
+            </li>
+<li class="listitem">
+              http://www.itl.nist.gov/div898/handbook/eda/section3/eda3662.htm
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="triangular_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="weibull_dist.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/weibull_dist.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/dists/weibull_dist.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,359 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Weibull Distribution</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../dists.html" title="Distributions">
+<link rel="prev" href="uniform_dist.html" title="Uniform Distribution">
+<link rel="next" href="../dist_algorithms.html" title="Distribution Algorithms">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="uniform_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../dist_algorithms.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_dists_weibull_dist">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.dist_ref.dists.weibull_dist"></a><a class="link" href="weibull_dist.html" title="Weibull Distribution">Weibull Distribution</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">weibull</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy<></a> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">weibull_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">weibull_distribution</span><span class="special"><></span> <span class="identifier">weibull</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">weibull_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">Policy</span>   <span class="identifier">policy_type</span><span class="special">;</span>
+   <span class="comment">// Construct:</span>
+   <span class="identifier">weibull_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+   <span class="comment">// Accessors:</span>
+   <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+          The <a href="http://en.wikipedia.org/wiki/Weibull_distribution" target="_top">Weibull
+          distribution</a> is a continuous distribution with the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
+          density function</a>:
+        </p>
+<p>
+          f(x; α, β) = (α/β) * (x / β)<sup>α - 1</sup> * e<sup>-(x/β)<sup>α</sup></sup>
+        </p>
+<p>
+          For shape parameter α   > 0, and scale parameter β   > 0, and x > 0.
+        </p>
+<p>
+          The Weibull distribution is often used in the field of failure analysis;
+          in particular it can mimic distributions where the failure rate varies
+          over time. If the failure rate is:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              constant over time, then α   = 1, suggests that items are failing from
+              random events.
+            </li>
+<li class="listitem">
+              decreases over time, then α   < 1, suggesting "infant mortality".
+            </li>
+<li class="listitem">
+              increases over time, then α   > 1, suggesting "wear out" -
+              more likely to fail as time goes by.
+            </li>
+</ul></div>
+<p>
+          The following graph illustrates how the PDF varies with the shape parameter
+          α:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/weibull_pdf1.png" align="middle"></span>
+        </p>
+<p>
+          While this graph illustrates how the PDF varies with the scale parameter
+          β:
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/weibull_pdf2.png" align="middle"></span>
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h0"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.related_distributions"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.related_distributions">Related
+          distributions</a>
+        </h5>
+<p>
+          When α   = 3, the <a href="http://en.wikipedia.org/wiki/Weibull_distribution" target="_top">Weibull
+          distribution</a> appears similar to the <a href="http://en.wikipedia.org/wiki/Normal_distribution" target="_top">normal
+          distribution</a>. When α   = 1, the Weibull distribution reduces to the
+          <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">exponential
+          distribution</a>. The relationship of the types of extreme value distributions,
+          of which the Weibull is but one, is discussed by <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme
+          Value Distributions, Theory and Applications Samuel Kotz & Saralees
+          Nadarajah</a>.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h1"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.member_functions"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.member_functions">Member
+          Functions</a>
+        </h5>
+<pre class="programlisting"><span class="identifier">weibull_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          Constructs a <a href="http://en.wikipedia.org/wiki/Weibull_distribution" target="_top">Weibull
+          distribution</a> with shape <span class="emphasis"><em>shape</em></span> and scale <span class="emphasis"><em>scale</em></span>.
+        </p>
+<p>
+          Requires that the <span class="emphasis"><em>shape</em></span> and <span class="emphasis"><em>scale</em></span>
+          parameters are both greater than zero, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+          Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h2"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.non_member_accessors"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.non_member_accessors">Non-member
+          Accessors</a>
+        </h5>
+<p>
+          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
+          functions</a> that are generic to all distributions are supported:
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
+          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+        </p>
+<p>
+          The domain of the random variable is [0, ∞].
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h3"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.accuracy"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.accuracy">Accuracy</a>
+        </h5>
+<p>
+          The Weibull distribution is implemented in terms of the standard library
+          <code class="computeroutput"><span class="identifier">log</span></code> and <code class="computeroutput"><span class="identifier">exp</span></code>
+          functions plus <a class="link" href="../../powers/expm1.html" title="expm1">expm1</a> and
+          <a class="link" href="../../powers/log1p.html" title="log1p">log1p</a> and as such should
+          have very low error rates.
+        </p>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h4"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.implementation"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.implementation">Implementation</a>
+        </h5>
+<p>
+          In the following table α   is the shape parameter of the distribution, β   is its
+          scale parameter, <span class="emphasis"><em>x</em></span> is the random variate, <span class="emphasis"><em>p</em></span>
+          is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Function
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Implementation Notes
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    pdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: pdf = αβ<sup>-α </sup>x<sup>α - 1</sup> e<sup>-(x/beta)<sup>alpha</sup></sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: p = -<a class="link" href="../../powers/expm1.html" title="expm1">expm1</a>(-(x/β)<sup>α</sup>)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    cdf complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: q = e<sup>-(x/β)<sup>α</sup></sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β * (-<a class="link" href="../../powers/log1p.html" title="log1p">log1p</a>(-p))<sup>1/α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    quantile from the complement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Using the relation: x = β * (-log(q))<sup>1/α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mean
+                  </p>
+                </td>
+<td>
+                  <p>
+                    β * Γ(1 + 1/α)
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    variance
+                  </p>
+                </td>
+<td>
+                  <p>
+                    β<sup>2</sup>(Γ(1 + 2/α) - Γ<sup>2</sup>(1 + 1/α))
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    mode
+                  </p>
+                </td>
+<td>
+                  <p>
+                    β((α - 1) / α)<sup>1/α</sup>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    skewness
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/WeibullDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/WeibullDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    kurtosis excess
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Refer to <a href="http://mathworld.wolfram.com/WeibullDistribution.html" target="_top">Weisstein,
+                    Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+                    Web Resource.</a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.dists.weibull_dist.h5"></a>
+          <span class="phrase"><a name="math_toolkit.dist_ref.dists.weibull_dist.references"></a></span><a class="link" href="weibull_dist.html#math_toolkit.dist_ref.dists.weibull_dist.references">References</a>
+        </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              http://en.wikipedia.org/wiki/Weibull_distribution
+            </li>
+<li class="listitem">
+              <a href="http://mathworld.wolfram.com/WeibullDistribution.html" target="_top">Weisstein,
+              Eric W. "Weibull Distribution." From MathWorld--A Wolfram
+              Web Resource.</a>
+            </li>
+<li class="listitem">
+              <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3668.htm" target="_top">Weibull
+              in NIST Exploratory Data Analysis</a>
+            </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="uniform_dist.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../dist_algorithms.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/nmp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/dist_ref/nmp.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,696 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Non-Member Properties</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../dist_ref.html" title="Statistical Distributions Reference">
+<link rel="prev" href="../dist_ref.html" title="Statistical Distributions Reference">
+<link rel="next" href="dists.html" title="Distributions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../dist_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dists.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_dist_ref_nmp">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.dist_ref.nmp"></a><a class="link" href="nmp.html" title="Non-Member Properties">Non-Member Properties</a>
+</h3></div></div></div>
+<p>
+        Properties that are common to all distributions are accessed via non-member
+        getter functions: non-membership allows more of these functions to be added
+        over time, as the need arises. Unfortunately the literature uses many different
+        and confusing names to refer to a rather small number of actual concepts;
+        refer to the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.concept_index">concept
+        index</a> to find the property you want by the name you are most familiar
+        with. Or use the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.function_index">function
+        index</a> to go straight to the function you want if you already know
+        its name.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h0"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.function_index"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.function_index">Function
+        Index</a>
+      </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+            Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of the Cumulative
+            Distribution Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.median">median</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.range">range</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile from the
+            complement of the probability</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h1"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.concept_index"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.concept_index">Conceptual
+        Index</a>
+      </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of the Cumulative
+            Distribution Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+            Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf_inv">Inverse Cumulative
+            Distribution Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.survival_inv">Inverse Survival
+            Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.lower_critical">Lower Critical
+            Value</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.median">median</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdfPQ">P</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.percent">Percent Point Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pmf">Probability Mass Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.range">range</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdfPQ">Q</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile from the
+            complement of the probability</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.survival">Survival Function</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.upper_critical">Upper Critical
+            Value</a>.
+          </li>
+<li class="listitem">
+            <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h2"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.cdf"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">cdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        The <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution
+        Function</a> is the probability that the variable takes a value less than
+        or equal to x. It is equivalent to the integral from -infinity to x of the
+        <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the random variable is outside the defined range for the distribution.
+      </p>
+<p>
+        For example, the following graph shows the cdf for the normal distribution:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cdf.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h3"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.ccdf"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement
+        of the Cumulative Distribution Function</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">cdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Unspecified-Complement-Type</em></span><span class="special"><</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">>&</span> <span class="identifier">comp</span><span class="special">);</span>
+</pre>
+<p>
+        The complement of the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a> is the probability that the variable takes a
+        value greater than x. It is equivalent to the integral from x to infinity
+        of the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density
+        Function</a>, or 1 minus the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a> of x.
+      </p>
+<p>
+        This is also known as the survival function.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the random variable is outside the defined range for the distribution.
+      </p>
+<p>
+        In this library, it is obtained by wrapping the arguments to the <code class="computeroutput"><span class="identifier">cdf</span></code> function in a call to <code class="computeroutput"><span class="identifier">complement</span></code>, for example:
+      </p>
+<pre class="programlisting"><span class="comment">// standard normal distribution object:</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">;</span>
+<span class="comment">// print survival function for x=2.0:</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">2.0</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        For example, the following graph shows the __complement of the cdf for the
+        normal distribution:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/survival.png"></span>
+      </p>
+<p>
+        See <a class="link" href="../stat_tut/overview/complements.html#why_complements">why complements?</a> for why the complement
+        is useful and when it should be used.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h4"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.hazard"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard
+        Function</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">hazard</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>
+        of <span class="emphasis"><em>x</em></span> and distibution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the random variable is outside the defined range for the distribution.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hazard.png"></span>
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Some authors refer to this as the conditional failure density function
+          rather than the hazard function.
+        </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h5"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.chf"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative
+        Hazard Function</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">chf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard
+        Function</a> of <span class="emphasis"><em>x</em></span> and distibution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the random variable is outside the defined range for the distribution.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/chf.png"></span>
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Some authors refer to this as simply the "Hazard Function".
+        </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h6"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.mean"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the mean of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined mean (for example the Cauchy
+        distribution).
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h7"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.median"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.median">median</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">median</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the median of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h8"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.mode"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the mode of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined mode.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h9"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.pdf"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability
+        Density Function</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">pdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        For a continuous function, the probability density function (pdf) returns
+        the probability that the variate has the value x. Since for continuous distributions
+        the probability at a single point is actually zero, the probability is better
+        expressed as the integral of the pdf between two points: see the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a>.
+      </p>
+<p>
+        For a discrete distribution, the pdf is the probability that the variate
+        takes the value x.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the random variable is outside the defined range for the distribution.
+      </p>
+<p>
+        For example, for a standard normal distribution the pdf looks like this:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/pdf.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h10"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.range"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.range">Range</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">></span> <span class="identifier">range</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the valid range of the random variable over distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h11"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.quantile"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">quantile</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+        The quantile is best viewed as the inverse of the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a>, it returns a value <span class="emphasis"><em>x</em></span> such
+        that <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span>
+        <span class="identifier">p</span></code>.
+      </p>
+<p>
+        This is also known as the <span class="emphasis"><em>percent point function</em></span>, or
+        <span class="emphasis"><em>percentile</em></span>, or <span class="emphasis"><em>fractile</em></span>, it is
+        also the same as calculating the <span class="emphasis"><em>lower critical value</em></span>
+        of a distribution.
+      </p>
+<p>
+        This function returns a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the probability lies outside [0,1]. The function may return an <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if there is no finite value that has the specified probability.
+      </p>
+<p>
+        The following graph shows the quantile function for a standard normal distribution:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/quantile.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h12"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.quantile_c"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile_c">Quantile
+        from the complement of the probability.</a>
+      </h5>
+<p>
+        See also <a class="link" href="../stat_tut/overview/complements.html" title="Complements are supported too - and when to use them">complements</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">quantile</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Unspecified-Complement-Type</em></span><span class="special"><</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">>&</span> <span class="identifier">comp</span><span class="special">);</span>
+</pre>
+<p>
+        This is the inverse of the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement
+        of the Cumulative Distribution Function</a>. It is calculated by wrapping
+        the arguments in a call to the quantile function in a call to <span class="emphasis"><em>complement</em></span>.
+        For example:
+      </p>
+<pre class="programlisting"><span class="comment">// define a standard normal distribution:</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">;</span>
+<span class="comment">// print the value of x for which the complement</span>
+<span class="comment">// of the probability is 0.05:</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">0.05</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        The function computes a value <span class="emphasis"><em>x</em></span> such that <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+        <span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">q</span></code> where
+        <span class="emphasis"><em>q</em></span> is complement of the probability.
+      </p>
+<p>
+        <a class="link" href="../stat_tut/overview/complements.html#why_complements">Why complements?</a>
+      </p>
+<p>
+        This function is also called the inverse survival function, and is the same
+        as calculating the <span class="emphasis"><em>upper critical value</em></span> of a distribution.
+      </p>
+<p>
+        This function returns a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the probablity lies outside [0,1]. The function may return an <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if there is no finite value that has the specified probability.
+      </p>
+<p>
+        The following graph show the inverse survival function for the normal distribution:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/survival_inv.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h13"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.sd"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.sd">Standard
+        Deviation</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the standard deviation of distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined standard deviation.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h14"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.support"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.support">support</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">></span> <span class="identifier">support</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the supported range of random variable over the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        The distribution is said to be 'supported' over a range that is <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">"the
+        smallest closed set whose complement has probability zero"</a>.
+        Non-mathematicians might say it means the 'interesting' smallest range of
+        random variate x that has the cdf going from zero to unity. Outside are uninteresting
+        zones where the pdf is zero, and the cdf zero or unity.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h15"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.variance"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.variance">Variance</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the variance of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined variance.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h16"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.skewness"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.skewness">Skewness</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">skewness</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the skewness of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined skewness.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h17"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.kurtosis"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis">Kurtosis</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">kurtosis</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the 'proper' kurtosis (normalized fourth moment) of the distribution
+        <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        kertosis = β<sub>2</sub>  = μ<sub>4</sub>   / μ<sub>2</sub><sup>2</sup>
+      </p>
+<p>
+        Where μ<sub>i</sub>   is the i'th central moment of the distribution, and in particular
+        μ<sub>2</sub>   is the variance of the distribution.
+      </p>
+<p>
+        The kurtosis is a measure of the "peakedness" of a distribution.
+      </p>
+<p>
+        Note that the literature definition of kurtosis is confusing. The definition
+        used here is that used by for example <a href="http://mathworld.wolfram.com/Kurtosis.html" target="_top">Wolfram
+        MathWorld</a> (that includes a table of formulae for kurtosis excess
+        for various distributions) but NOT the definition of <a href="http://en.wikipedia.org/wiki/Kurtosis" target="_top">kurtosis
+        used by Wikipedia</a> which treats "kurtosis" and "kurtosis
+        excess" as the same quantity.
+      </p>
+<pre class="programlisting"><span class="identifier">kurtosis_excess</span> <span class="special">=</span> <span class="char">'proper'</span> <span class="identifier">kurtosis</span> <span class="special">-</span> <span class="number">3</span>
+</pre>
+<p>
+        This subtraction of 3 is convenient so that the <span class="emphasis"><em>kurtosis excess</em></span>
+        of a normal distribution is zero.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined kurtosis.
+      </p>
+<p>
+        'Proper' kurtosis can have a value from zero to + infinity.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h18"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.kurtosis_excess"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">Kurtosis
+        excess</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">kurtosis_excess</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special"><</span><span class="identifier">RealType</span><span class="special">,</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">>&</span> <span class="identifier">dist</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the kurtosis excess of the distribution <span class="emphasis"><em>dist</em></span>.
+      </p>
+<p>
+        kurtosis excess = γ<sub>2</sub>  = μ<sub>4</sub>   / μ<sub>2</sub><sup>2</sup>  - 3 = kurtosis - 3
+      </p>
+<p>
+        Where μ<sub>i</sub>   is the i'th central moment of the distribution, and in particular
+        μ<sub>2</sub>   is the variance of the distribution.
+      </p>
+<p>
+        The kurtosis excess is a measure of the "peakedness" of a distribution,
+        and is more widely used than the "kurtosis proper". It is defined
+        so that the kurtosis excess of a normal distribution is zero.
+      </p>
+<p>
+        This function may return a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        if the distribution does not have a defined kurtosis excess.
+      </p>
+<p>
+        Kurtosis excess can have a value from -2 to + infinity.
+      </p>
+<pre class="programlisting"><span class="identifier">kurtosis</span> <span class="special">=</span> <span class="identifier">kurtosis_excess</span> <span class="special">+</span><span class="number">3</span><span class="special">;</span>
+</pre>
+<p>
+        The kurtosis excess of a normal distribution is zero.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h19"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.cdfPQ"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdfPQ">P
+        and Q</a>
+      </h5>
+<p>
+        The terms P and Q are sometimes used to refer to the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative
+        Distribution Function</a> and its <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">complement</a>
+        respectively. Lowercase p and q are sometimes used to refer to the values
+        returned by these functions.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h20"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.percent"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.percent">Percent
+        Point Function or Percentile</a>
+      </h5>
+<p>
+        The percent point function, also known as the percentile, is the same as
+        the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h21"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.cdf_inv"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.cdf_inv">Inverse
+        CDF Function.</a>
+      </h5>
+<p>
+        The inverse of the cumulative distribution function, is the same as the
+        <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h22"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.survival_inv"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.survival_inv">Inverse
+        Survival Function.</a>
+      </h5>
+<p>
+        The inverse of the survival function, is the same as computing the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile_c">quantile from the complement
+        of the probability</a>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h23"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.pmf"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pmf">Probability
+        Mass Function</a>
+      </h5>
+<p>
+        The Probability Mass Function is the same as the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability
+        Density Function</a>.
+      </p>
+<p>
+        The term Mass Function is usually applied to discrete distributions, while
+        the term <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density
+        Function</a> applies to continuous distributions.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h24"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.lower_critical"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.lower_critical">Lower
+        Critical Value.</a>
+      </h5>
+<p>
+        The lower critical value calculates the value of the random variable given
+        the area under the left tail of the distribution. It is equivalent to calculating
+        the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h25"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.upper_critical"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.upper_critical">Upper
+        Critical Value.</a>
+      </h5>
+<p>
+        The upper critical value calculates the value of the random variable given
+        the area under the right tail of the distribution. It is equivalent to calculating
+        the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.quantile_c">quantile from the
+        complement of the probability</a>.
+      </p>
+<h5>
+<a name="math_toolkit.dist_ref.nmp.h26"></a>
+        <span class="phrase"><a name="math_toolkit.dist_ref.nmp.survival"></a></span><a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.survival">Survival
+        Function</a>
+      </h5>
+<p>
+        Refer to the <a class="link" href="nmp.html#math_toolkit.dist_ref.nmp.ccdf">Complement of
+        the Cumulative Distribution Function</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../dist_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dists.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integrals</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="airy/bip.html" title="Airy Bi' Function">
+<link rel="next" href="ellint/ellint_intro.html" title="Elliptic Integral Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="airy/bip.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="ellint/ellint_intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.ellint"></a><a class="link" href="ellint.html" title="Elliptic Integrals">Elliptic Integrals</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Elliptic Integral Overview</span></dt>
+<dt><span class="section"><a href="ellint/ellint_carlson.html">Elliptic Integrals
+      - Carlson Form</a></span></dt>
+<dt><span class="section"><a href="ellint/ellint_1.html">Elliptic Integrals of the
+      First Kind - Legendre Form</a></span></dt>
+<dt><span class="section"><a href="ellint/ellint_2.html">Elliptic Integrals of the
+      Second Kind - Legendre Form</a></span></dt>
+<dt><span class="section"><a href="ellint/ellint_3.html">Elliptic Integrals of the
+      Third Kind - Legendre Form</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="airy/bip.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="ellint/ellint_intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,258 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integrals of the First Kind - Legendre Form</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../ellint.html" title="Elliptic Integrals">
+<link rel="prev" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">
+<link rel="next" href="ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_carlson.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint_ellint_1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.ellint.ellint_1"></a><a class="link" href="ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">Elliptic Integrals of the
+      First Kind - Legendre Form</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.ellint.ellint_1.h0"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_1.synopsis"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.ellint.ellint_1.h1"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_1.description"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.description">Description</a>
+      </h5>
+<p>
+        These two functions evaluate the incomplete elliptic integral of the first
+        kind <span class="emphasis"><em>F(φ, k)</em></span> and its complete counterpart <span class="emphasis"><em>K(k)
+        = F(π/2, k)</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/ellint_1.png" align="middle"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types:
+        when they are the same type then the result is the same type as the arguments.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the incomplete elliptic integral of the first kind <span class="emphasis"><em>F(φ,
+        k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint2.png"></span>
+      </p>
+<p>
+        Requires -1 <= k <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the complete elliptic integral of the first kind <span class="emphasis"><em>K(k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint6.png"></span>
+      </p>
+<p>
+        Requires -1 <= k <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_1.h2"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_1.accuracy"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.accuracy">Accuracy</a>
+      </h5>
+<p>
+        These functions are computed using only basic arithmetic operations, so there
+        isn't much variation in accuracy over differing platforms. Note that only
+        results for the widest floating point type on the system are given as narrower
+        types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.ellint.ellint_1.errors_rates_in_the_elliptic_int"></a><p class="title"><b>Table 3.26. Errors Rates in the Elliptic Integrals of the First Kind</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the First Kind">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  F(φ, k)
+                </p>
+              </th>
+<th>
+                <p>
+                  K(k)
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3 Mean=0.8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.8 Mean=0.7
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.6 Mean=1.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.2 Mean=1.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.6 Mean=1.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.7 Mean=1.5
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.ellint.ellint_1.h3"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_1.testing"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.testing">Testing</a>
+      </h5>
+<p>
+        The tests use a mixture of spot test values calculated using the online calculator
+        at functions.wolfram.com,
+        and random test data generated using NTL::RR at 1000-bit precision and this
+        implementation.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_1.h4"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_1.implementation"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented in terms of Carlson's integrals using the
+        relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint19.png"></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint20.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_carlson.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_2.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,258 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integrals of the Second Kind - Legendre Form</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../ellint.html" title="Elliptic Integrals">
+<link rel="prev" href="ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">
+<link rel="next" href="ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_3.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint_ellint_2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.ellint.ellint_2"></a><a class="link" href="ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">Elliptic Integrals of the
+      Second Kind - Legendre Form</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.ellint.ellint_2.h0"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_2.synopsis"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.ellint.ellint_2.h1"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_2.description"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.description">Description</a>
+      </h5>
+<p>
+        These two functions evaluate the incomplete elliptic integral of the second
+        kind <span class="emphasis"><em>E(φ, k)</em></span> and its complete counterpart <span class="emphasis"><em>E(k)
+        = E(π/2, k)</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/ellint_2.png" align="middle"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types:
+        when they are the same type then the result is the same type as the arguments.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the incomplete elliptic integral of the second kind <span class="emphasis"><em>E(φ,
+        k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint3.png"></span>
+      </p>
+<p>
+        Requires -1 <= k <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the complete elliptic integral of the second kind <span class="emphasis"><em>E(k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint7.png"></span>
+      </p>
+<p>
+        Requires -1 <= k <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_2.h2"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_2.accuracy"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.accuracy">Accuracy</a>
+      </h5>
+<p>
+        These functions are computed using only basic arithmetic operations, so there
+        isn't much variation in accuracy over differing platforms. Note that only
+        results for the widest floating point type on the system are given as narrower
+        types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.ellint.ellint_2.errors_rates_in_the_elliptic_int"></a><p class="title"><b>Table 3.27. Errors Rates in the Elliptic Integrals of the Second Kind</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the Second Kind">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  F(φ, k)
+                </p>
+              </th>
+<th>
+                <p>
+                  K(k)
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.6 Mean=1.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.5 Mean=1.0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.3 Mean=1.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.6 Mean=1.2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.8 Mean=2.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10.8 Mean=2.3
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.ellint.ellint_2.h3"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_2.testing"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.testing">Testing</a>
+      </h5>
+<p>
+        The tests use a mixture of spot test values calculated using the online calculator
+        at functions.wolfram.com,
+        and random test data generated using NTL::RR at 1000-bit precision and this
+        implementation.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_2.h4"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_2.implementation"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented in terms of Carlson's integrals using the
+        relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint21.png"></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint22.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_3.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_3.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_3.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,311 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integrals of the Third Kind - Legendre Form</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../ellint.html" title="Elliptic Integrals">
+<link rel="prev" href="ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">
+<link rel="next" href="../jacobi.html" title="Jacobi Elliptic Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../jacobi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint_ellint_3">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.ellint.ellint_3"></a><a class="link" href="ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">Elliptic Integrals of the
+      Third Kind - Legendre Form</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.ellint.ellint_3.h0"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_3.synopsis"></a></span><a class="link" href="ellint_3.html#math_toolkit.ellint.ellint_3.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_3</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.ellint.ellint_3.h1"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_3.description"></a></span><a class="link" href="ellint_3.html#math_toolkit.ellint.ellint_3.description">Description</a>
+      </h5>
+<p>
+        These two functions evaluate the incomplete elliptic integral of the third
+        kind <span class="emphasis"><em>Π(n, φ, k)</em></span> and its complete counterpart <span class="emphasis"><em>Π(n,
+        k) = E(n, π/2, k)</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/ellint_3.png" align="middle"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when the arguments are of different
+        types: when they are the same type then the result is the same type as the
+        arguments.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the incomplete elliptic integral of the third kind <span class="emphasis"><em>Π(n,
+        φ, k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint4.png"></span>
+      </p>
+<p>
+        Requires <span class="emphasis"><em>-1 <= k <= 1</em></span> and <span class="emphasis"><em>n < 1/sin<sup>2</sup>(φ)</em></span>,
+        otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        (outside this range the result would be complex).
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the complete elliptic integral of the first kind <span class="emphasis"><em>Π(n, k)</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint8.png"></span>
+      </p>
+<p>
+        Requires <span class="emphasis"><em>-1 <= k <= 1</em></span> and <span class="emphasis"><em>n < 1</em></span>,
+        otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        (outside this range the result would be complex).
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_3.h2"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_3.accuracy"></a></span><a class="link" href="ellint_3.html#math_toolkit.ellint.ellint_3.accuracy">Accuracy</a>
+      </h5>
+<p>
+        These functions are computed using only basic arithmetic operations, so there
+        isn't much variation in accuracy over differing platforms. Note that only
+        results for the widest floating point type on the system are given as narrower
+        types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.ellint.ellint_3.errors_rates_in_the_elliptic_int"></a><p class="title"><b>Table 3.28. Errors Rates in the Elliptic Integrals of the Third Kind</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the Third Kind">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Π(n, φ, k)
+                </p>
+              </th>
+<th>
+                <p>
+                  Π(n, k)
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=29 Mean=2.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=14 Mean=1.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.3 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10 Mean=1.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.2 Mean=1.1
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.ellint.ellint_3.h3"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_3.testing"></a></span><a class="link" href="ellint_3.html#math_toolkit.ellint.ellint_3.testing">Testing</a>
+      </h5>
+<p>
+        The tests use a mixture of spot test values calculated using the online calculator
+        at functions.wolfram.com,
+        and random test data generated using NTL::RR at 1000-bit precision and this
+        implementation.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_3.h4"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_3.implementation"></a></span><a class="link" href="ellint_3.html#math_toolkit.ellint.ellint_3.implementation">Implementation</a>
+      </h5>
+<p>
+        The implementation for Π(n, φ, k) first siphons off the special cases:
+      </p>
+<p>
+        <span class="emphasis"><em>Π(0, φ, k) = F(φ, k)</em></span>
+      </p>
+<p>
+        <span class="emphasis"><em>Π(n, π/2, k) = Π(n, k)</em></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint23.png"></span>
+      </p>
+<p>
+        Then if n < 0 the relations (A&S 17.7.15/16):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint24.png"></span>
+      </p>
+<p>
+        are used to shift <span class="emphasis"><em>n</em></span> to the range [0, 1].
+      </p>
+<p>
+        Then the relations:
+      </p>
+<p>
+        <span class="emphasis"><em>Π(n, -φ, k) = -Π(n, φ, k)</em></span>
+      </p>
+<p>
+        <span class="emphasis"><em>Π(n, φ+mπ, k) = Π(n, φ, k) + 2mΠ(n, k) ; n <= 1</em></span>
+      </p>
+<p>
+        <span class="emphasis"><em>Π(n, φ+mπ, k) = Π(n, φ, k) ; n > 1</em></span> [1]
+      </p>
+<p>
+        are used to move φ   to the range [0, π/2].
+      </p>
+<p>
+        The functions are then implemented in terms of Carlson's integrals using
+        the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint25.png"></span>
+      </p>
+<p>
+        and
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint26.png"></span>
+      </p>
+<div class="footnotes">
+<br><hr style="width:100; text-align:left;margin-left: 0">
+<div id="ftn.math_toolkit.ellint.ellint_3.f0" class="footnote"><p>[1] 
+          I haven't been able to find a literature reference for this relation, but
+          it appears to be the convention used by Mathematica. Intuitively the first
+          <span class="emphasis"><em>2 * m * Π(n, k)</em></span> terms cancel out as the derivative
+          alternates between +∞ and -∞.
+        </p></div>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../jacobi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_carlson.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_carlson.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,421 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integrals - Carlson Form</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../ellint.html" title="Elliptic Integrals">
+<link rel="prev" href="ellint_intro.html" title="Elliptic Integral Overview">
+<link rel="next" href="ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_intro.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint_ellint_carlson">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.ellint.ellint_carlson"></a><a class="link" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">Elliptic Integrals
+      - Carlson Form</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.ellint.ellint_carlson.h0"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.synopsis"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rj</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.ellint.ellint_carlson.h1"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.description"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.description">Description</a>
+      </h5>
+<p>
+        These functions return Carlson's symmetrical elliptic integrals, the functions
+        have complicated behavior over all their possible domains, but the following
+        graph gives an idea of their behavior:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/ellint_carlson.png" align="middle"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when the arguments are of different
+        types: otherwise the return is the same type as the arguments.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+</pre>
+<p>
+        Returns Carlson's Elliptic Integral R<sub>F</sub>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint9.png"></span>
+      </p>
+<p>
+        Requires that all of the arguments are non-negative, and at most one may
+        be zero. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+</pre>
+<p>
+        Returns Carlson's elliptic integral R<sub>D</sub>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint10.png"></span>
+      </p>
+<p>
+        Requires that x and y are non-negative, with at most one of them zero, and
+        that z >= 0. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+</pre>
+<p>
+        Returns Carlson's elliptic integral R<sub>J</sub>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint11.png"></span>
+      </p>
+<p>
+        Requires that x, y and z are non-negative, with at most one of them zero,
+        and that <span class="emphasis"><em>p != 0</em></span>. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        When <span class="emphasis"><em>p < 0</em></span> the function returns the <a href="http://en.wikipedia.org/wiki/Cauchy_principal_value" target="_top">Cauchy
+        principal value</a> using the relation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint17.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&)</span>
+</pre>
+<p>
+        Returns Carlson's elliptic integral R<sub>C</sub>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint12.png"></span>
+      </p>
+<p>
+        Requires that <span class="emphasis"><em>x > 0</em></span> and that <span class="emphasis"><em>y != 0</em></span>.
+        Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        When <span class="emphasis"><em>y < 0</em></span> the function returns the <a href="http://mathworld.wolfram.com/CauchyPrincipalValue.html" target="_top">Cauchy
+        principal value</a> using the relation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint18.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_carlson.h2"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.testing"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests.
+      </p>
+<p>
+        Spot tests compare selected values with test data given in:
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          B. C. Carlson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9409227" target="_top">Numerical
+          computation of real or complex elliptic integrals</a></em></span>. Numerical
+          Algorithms, Volume 10, Number 1 / March, 1995, pp 13-26.
+        </p></blockquote></div>
+<p>
+        Random test data generated using NTL::RR at 1000-bit precision and our implementation
+        checks for rounding-errors and/or regressions.
+      </p>
+<p>
+        There are also sanity checks that use the inter-relations between the integrals
+        to verify their correctness: see the above Carlson paper for details.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_carlson.h3"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.accuracy"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.accuracy">Accuracy</a>
+      </h5>
+<p>
+        These functions are computed using only basic arithmetic operations, so there
+        isn't much variation in accuracy over differing platforms. Note that only
+        results for the widest floating-point type on the system are given as narrower
+        types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.ellint.ellint_carlson.errors_rates_in_the_carlson_elli"></a><p class="title"><b>Table 3.25. Errors Rates in the Carlson Elliptic Integrals</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in the Carlson Elliptic Integrals">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  R<sub>F</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  R<sub>D</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  R<sub>J</sub>
+                </p>
+              </th>
+<th>
+                <p>
+                  R<sub>C</sub>
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.9 Mean=0.75
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.6 Mean=0.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=108 Mean=6.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.4 Mean=0.6
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux / G++ 3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.5 Mean=0.75
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.7 Mean=0.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=105 Mean=8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.9 Mean=0.7
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HP-UX / HP aCC 6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.3 Mean=1.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.9 Mean=0.99
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=180 Mean=12
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.8 Mean=0.7
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.ellint.ellint_carlson.h4"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.implementation"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.implementation">Implementation</a>
+      </h5>
+<p>
+        The key of Carlson's algorithm [<a class="link" href="ellint_intro.html#ellint_ref_carlson79">Carlson79</a>]
+        is the duplication theorem:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint13.png"></span>
+      </p>
+<p>
+        By applying it repeatedly, <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>,
+        <span class="emphasis"><em>z</em></span> get closer and closer. When they are nearly equal,
+        the special case equation
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint16.png"></span>
+      </p>
+<p>
+        is used. More specifically, <span class="emphasis"><em>[R F]</em></span> is evaluated from
+        a Taylor series expansion to the fifth order. The calculations of the other
+        three integrals are analogous.
+      </p>
+<p>
+        For <span class="emphasis"><em>p < 0</em></span> in <span class="emphasis"><em>R<sub>J</sub>(x, y, z, p)</em></span>
+        and <span class="emphasis"><em>y < 0</em></span> in <span class="emphasis"><em>R<sub>C</sub>(x, y)</em></span>, the integrals
+        are singular and their <a href="http://mathworld.wolfram.com/CauchyPrincipalValue.html" target="_top">Cauchy
+        principal values</a> are returned via the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint17.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint18.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ellint_intro.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/ellint/ellint_intro.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,396 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Elliptic Integral Overview</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../ellint.html" title="Elliptic Integrals">
+<link rel="prev" href="../ellint.html" title="Elliptic Integrals">
+<link rel="next" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../ellint.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_carlson.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_ellint_ellint_intro">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.ellint.ellint_intro"></a><a class="link" href="ellint_intro.html" title="Elliptic Integral Overview">Elliptic Integral Overview</a>
+</h3></div></div></div>
+<p>
+        The main reference for the elliptic integrals is:
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          M. Abramowitz and I. A. Stegun (Eds.) (1964) Handbook of Mathematical Functions
+          with Formulas, Graphs, and Mathematical Tables, National Bureau of Standards
+          Applied Mathematics Series, U.S. Government Printing Office, Washington,
+          D.C.
+        </p></blockquote></div>
+<p>
+        Mathworld also contain a lot of useful background information:
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <a href="http://mathworld.wolfram.com/EllipticIntegral.html" target="_top">Weisstein,
+          Eric W. "Elliptic Integral." From MathWorld--A Wolfram Web Resource.</a>
+        </p></blockquote></div>
+<p>
+        As does <a href="http://en.wikipedia.org/wiki/Elliptic_integral" target="_top">Wikipedia
+        Elliptic integral</a>.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h0"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.notation"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.notation">Notation</a>
+      </h5>
+<p>
+        All variables are real numbers unless otherwise noted.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h1"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.definition"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.definition">Definition</a>
+      </h5>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint1.png"></span>
+      </p>
+<p>
+        is called elliptic integral if <span class="emphasis"><em>R(t, s)</em></span> is a rational
+        function of <span class="emphasis"><em>t</em></span> and <span class="emphasis"><em>s</em></span>, and <span class="emphasis"><em>s<sup>2</sup></em></span>
+        is a cubic or quartic polynomial in <span class="emphasis"><em>t</em></span>.
+      </p>
+<p>
+        Elliptic integrals generally can not be expressed in terms of elementary
+        functions. However, Legendre showed that all elliptic integrals can be reduced
+        to the following three canonical forms:
+      </p>
+<p>
+        Elliptic Integral of the First Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint2.png"></span>
+      </p>
+<p>
+        Elliptic Integral of the Second Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint3.png"></span>
+      </p>
+<p>
+        Elliptic Integral of the Third Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint4.png"></span>
+      </p>
+<p>
+        where
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint5.png"></span>
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          <span class="emphasis"><em>φ</em></span> is called the amplitude.
+        </p>
+<p>
+          <span class="emphasis"><em>k</em></span> is called the modulus.
+        </p>
+<p>
+          <span class="emphasis"><em>α</em></span> is called the modular angle.
+        </p>
+<p>
+          <span class="emphasis"><em>n</em></span> is called the characteristic.
+        </p>
+</td></tr>
+</table></div>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          Perhaps more than any other special functions the elliptic integrals are
+          expressed in a variety of different ways. In particular, the final parameter
+          <span class="emphasis"><em>k</em></span> (the modulus) may be expressed using a modular angle
+          α, or a parameter <span class="emphasis"><em>m</em></span>. These are related by:
+        </p>
+<p>
+          k = sinα
+        </p>
+<p>
+          m = k<sup>2</sup> = sin<sup>2</sup>α
+        </p>
+<p>
+          So that the integral of the third kind (for example) may be expressed as
+          either:
+        </p>
+<p>
+          Π(n, φ, k)
+        </p>
+<p>
+          Π(n, φ \ α)
+        </p>
+<p>
+          Π(n, φ| m)
+        </p>
+<p>
+          To further complicate matters, some texts refer to the <span class="emphasis"><em>complement
+          of the parameter m</em></span>, or 1 - m, where:
+        </p>
+<p>
+          1 - m = 1 - k<sup>2</sup> = cos<sup>2</sup>α
+        </p>
+<p>
+          This implementation uses <span class="emphasis"><em>k</em></span> throughout: this matches
+          the requirements of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+          Report on C++ Library Extensions</a>. However, you should be extra
+          careful when using these functions!
+        </p>
+</td></tr>
+</table></div>
+<p>
+        When <span class="emphasis"><em>φ</em></span> = <span class="emphasis"><em>π</em></span> / 2, the elliptic integrals
+        are called <span class="emphasis"><em>complete</em></span>.
+      </p>
+<p>
+        Complete Elliptic Integral of the First Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint6.png"></span>
+      </p>
+<p>
+        Complete Elliptic Integral of the Second Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint7.png"></span>
+      </p>
+<p>
+        Complete Elliptic Integral of the Third Kind (Legendre form)
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint8.png"></span>
+      </p>
+<p>
+        Carlson [<a class="link" href="ellint_intro.html#ellint_ref_carlson77">Carlson77</a>] [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>]
+        gives an alternative definition of elliptic integral's canonical forms:
+      </p>
+<p>
+        Carlson's Elliptic Integral of the First Kind
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint9.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>, <span class="emphasis"><em>z</em></span>
+        are nonnegative and at most one of them may be zero.
+      </p>
+<p>
+        Carlson's Elliptic Integral of the Second Kind
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint10.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span> are nonnegative, at
+        most one of them may be zero, and <span class="emphasis"><em>z</em></span> must be positive.
+      </p>
+<p>
+        Carlson's Elliptic Integral of the Third Kind
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint11.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>, <span class="emphasis"><em>z</em></span>
+        are nonnegative, at most one of them may be zero, and <span class="emphasis"><em>p</em></span>
+        must be nonzero.
+      </p>
+<p>
+        Carlson's Degenerate Elliptic Integral
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint12.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>x</em></span> is nonnegative and <span class="emphasis"><em>y</em></span> is
+        nonzero.
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          <span class="emphasis"><em>R<sub>C</sub>(x, y) = R<sub>F</sub>(x, y, y)</em></span>
+        </p>
+<p>
+          <span class="emphasis"><em>R<sub>D</sub>(x, y, z) = R<sub>J</sub>(x, y, z, z)</em></span>
+        </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h2"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.duplication_theorem"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.duplication_theorem">Duplication
+        Theorem</a>
+      </h5>
+<p>
+        Carlson proved in [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>]
+        that
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint13.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h3"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.carlson_s_formulas"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.carlson_s_formulas">Carlson's
+        Formulas</a>
+      </h5>
+<p>
+        The Legendre form and Carlson form of elliptic integrals are related by equations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint14.png"></span>
+      </p>
+<p>
+        In particular,
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ellint15.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h4"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.numerical_algorithms"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.numerical_algorithms">Numerical
+        Algorithms</a>
+      </h5>
+<p>
+        The conventional methods for computing elliptic integrals are Gauss and Landen
+        transformations, which converge quadratically and work well for elliptic
+        integrals of the first and second kinds. Unfortunately they suffer from loss
+        of significant digits for the third kind. Carlson's algorithm [<a class="link" href="ellint_intro.html#ellint_ref_carlson79">Carlson79</a>]
+        [<a class="link" href="ellint_intro.html#ellint_ref_carlson78">Carlson78</a>], by contrast, provides
+        a unified method for all three kinds of elliptic integrals with satisfactory
+        precisions.
+      </p>
+<h5>
+<a name="math_toolkit.ellint.ellint_intro.h5"></a>
+        <span class="phrase"><a name="math_toolkit.ellint.ellint_intro.references"></a></span><a class="link" href="ellint_intro.html#math_toolkit.ellint.ellint_intro.references">References</a>
+      </h5>
+<p>
+        Special mention goes to:
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          A. M. Legendre, <span class="emphasis"><em>Traitd des Fonctions Elliptiques et des Integrales
+          Euleriennes</em></span>, Vol. 1. Paris (1825).
+        </p></blockquote></div>
+<p>
+        However the main references are:
+      </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+            <a name="ellint_ref_AS"></a>M. Abramowitz and I. A. Stegun (Eds.) (1964)
+            Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical
+            Tables, National Bureau of Standards Applied Mathematics Series, U.S.
+            Government Printing Office, Washington, D.C.
+          </li>
+<li class="listitem">
+            <a name="ellint_ref_carlson79"></a>B.C. Carlson, <span class="emphasis"><em>Computing
+            elliptic integrals by duplication</em></span>, Numerische Mathematik,
+            vol 33, 1 (1979).
+          </li>
+<li class="listitem">
+            <a name="ellint_ref_carlson77"></a>B.C. Carlson, <span class="emphasis"><em>Elliptic Integrals
+            of the First Kind</em></span>, SIAM Journal on Mathematical Analysis,
+            vol 8, 231 (1977).
+          </li>
+<li class="listitem">
+            <a name="ellint_ref_carlson78"></a>B.C. Carlson, <span class="emphasis"><em>Short Proofs
+            of Three Theorems on Elliptic Integrals</em></span>, SIAM Journal on Mathematical
+            Analysis, vol 9, 524 (1978).
+          </li>
+<li class="listitem">
+            <a name="ellint_ref_carlson81"></a>B.C. Carlson and E.M. Notis, <span class="emphasis"><em>ALGORITHM
+            577: Algorithms for Incomplete Elliptic Integrals</em></span>, ACM Transactions
+            on Mathematmal Software, vol 7, 398 (1981).
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>On computing elliptic integrals and functions</em></span>.
+            J. Math. and Phys., 44 (1965), pp. 36-51.
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals of the second
+            kind</em></span>. Math. Comp., 49 (1987), pp. 595-606. (Supplement, ibid.,
+            pp. S13-S17.)
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals of the third kind</em></span>.
+            Math. Comp., 51 (1988), pp. 267-280. (Supplement, ibid., pp. S1-S5.)
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: cubic cases</em></span>.
+            Math. Comp., 53 (1989), pp. 327-333.
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: one quadratic
+            factor</em></span>. Math. Comp., 56 (1991), pp. 267-280.
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em>A table of elliptic integrals: two quadratic
+            factors</em></span>. Math. Comp., 59 (1992), pp. 165-180.
+          </li>
+<li class="listitem">
+            B. C. Carlson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9409227" target="_top">Numerical
+            computation of real or complex elliptic integrals</a></em></span>.
+            Numerical Algorithms, Volume 10, Number 1 / March, 1995, p13-26.
+          </li>
+<li class="listitem">
+            B. C. Carlson and John L. Gustafson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9310223" target="_top">Asymptotic
+            Approximations for Symmetric Elliptic Integrals</a></em></span>, SIAM
+            Journal on Mathematical Analysis, Volume 25, Issue 2 (March 1994), 288-303.
+          </li>
+</ol></div>
+<p>
+        The following references, while not directly relevent to our implementation,
+        may also be of interest:
+      </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+            R. Burlisch, <span class="emphasis"><em>Numerical Compuation of Elliptic Integrals and
+            Elliptic Functions.</em></span> Numerical Mathematik 7, 78-90.
+          </li>
+<li class="listitem">
+            R. Burlisch, <span class="emphasis"><em>An extension of the Bartky Transformation to Incomplete
+            Elliptic Integrals of the Third Kind</em></span>. Numerical Mathematik
+            13, 266-284.
+          </li>
+<li class="listitem">
+            R. Burlisch, <span class="emphasis"><em>Numerical Compuation of Elliptic Integrals and
+            Elliptic Functions. III</em></span>. Numerical Mathematik 13, 305-315.
+          </li>
+<li class="listitem">
+            T. Fukushima and H. Ishizaki, <span class="emphasis"><em><a href="http://adsabs.harvard.edu/abs/1994CeMDA..59..237F" target="_top">Numerical
+            Computation of Incomplete Elliptic Integrals of a General Form.</a></em></span>
+            Celestial Mechanics and Dynamical Astronomy, Volume 59, Number 3 / July,
+            1994, 237-251.
+          </li>
+</ol></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../ellint.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ellint_carlson.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/error_handling.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/error_handling.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1118 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Handling</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="result_type.html" title="Calculation of the Type of the Result">
+<link rel="next" href="compilers_overview.html" title="Compilers">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="result_type.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="compilers_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_error_handling">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.error_handling"></a><a class="link" href="error_handling.html" title="Error Handling">Error Handling</a>
+</h2></div></div></div>
+<h4>
+<a name="math_toolkit.error_handling.h0"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.quick_reference"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.quick_reference">Quick
+      Reference</a>
+    </h4>
+<p>
+      Handling of errors by this library is split into two orthogonal parts:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          What kind of error has been raised?
+        </li>
+<li class="listitem">
+          What should be done when the error is raised?
+        </li>
+</ul></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        The default error actions are to throw an exception with an informative error
+        message. If you do not try to catch the exception, you will not see the message!
+      </p></td></tr>
+</table></div>
+<p>
+      The kinds of errors that can be raised are:
+    </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">Domain Error</span></dt>
+<dd><p>
+            Occurs when one or more arguments to a function are out of range.
+          </p></dd>
+<dt><span class="term">Pole Error</span></dt>
+<dd><p>
+            Occurs when the particular arguments cause the function to be evaluated
+            at a pole with no well defined residual value. For example if <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+            is evaluated at exactly -2, the function approaches different limiting
+            values depending upon whether you approach from just above or just below
+            -2. Hence the function has no well defined value at this point and a
+            Pole Error will be raised.
+          </p></dd>
+<dt><span class="term">Overflow Error</span></dt>
+<dd><p>
+            Occurs when the result is either infinite, or too large to represent
+            in the numeric type being returned by the function.
+          </p></dd>
+<dt><span class="term">Underflow Error</span></dt>
+<dd><p>
+            Occurs when the result is not zero, but is too small to be represented
+            by any other value in the type being returned by the function.
+          </p></dd>
+<dt><span class="term">Denormalisation Error</span></dt>
+<dd><p>
+            Occurs when the returned result would be a denormalised value.
+          </p></dd>
+<dt><span class="term">Rounding Error</span></dt>
+<dd><p>
+            Occurs when the argument to one of the rounding functions <a class="link" href="rounding/trunc.html" title="Truncation Functions">trunc</a>,
+            <a class="link" href="rounding/round.html" title="Rounding Functions">round</a> and <a class="link" href="rounding/modf.html" title="Integer and Fractional Part Splitting (modf)">modf</a>
+            can not be represented as an integer type, is outside the range of the
+            result type.
+          </p></dd>
+<dt><span class="term">Evaluation Error</span></dt>
+<dd><p>
+            Occurs if no method of evaluation is known, or when an internal error
+            occurred that prevented the result from being evaluated: this should
+            never occur, but if it does, then it's likely to be due to an iterative
+            method not converging fast enough.
+          </p></dd>
+<dt><span class="term">Indeterminate Result Error</span></dt>
+<dd><p>
+            Occurs when the result of a function is not defined for the values that
+            were passed to it.
+          </p></dd>
+</dl>
+</div>
+<p>
+      The action undertaken by each error condition is determined by the current
+      <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> in effect. This can be changed program-wide
+      by setting some configuration macros, or at namespace scope, or at the call
+      site (by specifying a specific policy in the function call).
+    </p>
+<p>
+      The available actions are:
+    </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">throw_on_error</span></dt>
+<dd><p>
+            Throws the exception most appropriate to the error condition.
+          </p></dd>
+<dt><span class="term">errno_on_error</span></dt>
+<dd><p>
+            Sets ::errno to an appropriate value, and then returns the most appropriate
+            result
+          </p></dd>
+<dt><span class="term">ignore_error</span></dt>
+<dd><p>
+            Ignores the error and simply the returns the most appropriate result.
+          </p></dd>
+<dt><span class="term">user_error</span></dt>
+<dd><p>
+            Calls a <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">user-supplied
+            error handler</a>.
+          </p></dd>
+</dl>
+</div>
+<p>
+      The following tables show all the permutations of errors and actions, with
+      the <span class="bold"><strong>default action for each error shown in bold</strong></span>:
+    </p>
+<div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_domain_erro"></a><p class="title"><b>Table 1.1. Possible Actions for Domain Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Domain Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code></strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">EDOM</span></code> and returns
+                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_domain_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_pole_errors"></a><p class="title"><b>Table 1.2. Possible Actions for Pole Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Pole Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code></strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">EDOM</span></code> and returns
+                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_pole_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_overflow_er"></a><p class="title"><b>Table 1.3. Possible Actions for Overflow Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Overflow Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code></strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">ERANGE</span></code> and returns
+                <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_overflow_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_underflow_e"></a><p class="title"><b>Table 1.4. Possible Actions for Underflow Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Underflow Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">ERANGE</span></code> and returns
+                0.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Returns 0</strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_underflow_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_denorm_erro"></a><p class="title"><b>Table 1.5. Possible Actions for Denorm Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Denorm Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">ERANGE</span></code> and returns
+                the denormalised value.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Returns the denormalised value.</strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_denorm_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_rounding_er"></a><p class="title"><b>Table 1.6. Possible Actions for Rounding Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Rounding Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Throws <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">rounding_error</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">ERANGE</span></code> and returns
+                the largest representable value of the target integer type (or the
+                most negative value if the argument to the function was less than
+                zero).
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Returns the largest representable value of
+                the target integer type (or the most negative value if the argument
+                to the function was less than zero).</strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_rounding_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_internal_ev"></a><p class="title"><b>Table 1.7. Possible Actions for Internal Evaluation Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Internal Evaluation Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Throws <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">evaluation_error</span></code></strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">EDOM</span></code> and returns
+                the closest approximation found.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the closest approximation found.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_evaluation_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.error_handling.possible_actions_for_indetermina"></a><p class="title"><b>Table 1.8. Possible Actions for Indeterminate Result Errors</b></p>
+<div class="table-contents"><table class="table" summary="Possible Actions for Indeterminate Result Errors">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Action
+              </p>
+            </th>
+<th>
+              <p>
+                Behaviour
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                throw_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                errno_on_error
+              </p>
+            </td>
+<td>
+              <p>
+                Sets <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+                to <code class="computeroutput"><span class="identifier">EDOM</span></code> and returns
+                the same value as <code class="computeroutput"><span class="identifier">ignore_error</span></code>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                ignore_error
+              </p>
+            </td>
+<td>
+              <p>
+                <span class="bold"><strong>Returns a default result that depends on the
+                function where the error occurred.</strong></span>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                user_error
+              </p>
+            </td>
+<td>
+              <p>
+                Returns the result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_indeterminate_result_error</span></code>:
+                <a class="link" href="pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">this function
+                must be defined by the user</a>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+      All these error conditions are in namespace boost::math::policies, made available,
+      for example, a by namespace declaration using <code class="computeroutput"><span class="keyword">namespace</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span></code> or individual using declarations <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">;</span></code>.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h1"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.rationale"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.rationale">Rationale</a>
+    </h4>
+<p>
+      The flexibility of the current implementation should be reasonably obvious:
+      the default behaviours were chosen based on feedback during the formal review
+      of this library. It was felt that:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Genuine errors should be flagged with exceptions rather than following
+          C-compatible behaviour and setting <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>.
+        </li>
+<li class="listitem">
+          Numeric underflow and denormalised results were not considered to be fatal
+          errors in most cases, so it was felt that these should be ignored.
+        </li>
+<li class="listitem">
+          If there is more than one error, only the first detected will be reported
+          in the throw message.
+        </li>
+</ul></div>
+<h4>
+<a name="math_toolkit.error_handling.h2"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.finding_more_information"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.finding_more_information">Finding
+      More Information</a>
+    </h4>
+<p>
+      There are some pre-processor macro defines that can be used to <a class="link" href="pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults">change
+      the policy defaults</a>. See also the <a class="link" href="../policy.html" title="Chapter 13. Policies">policy section</a>.
+    </p>
+<p>
+      An example is at the Policy tutorial in <a class="link" href="pol_tutorial/changing_policy_defaults.html" title="Changing the Policy Defaults">Changing
+      the Policy Defaults</a>.
+    </p>
+<p>
+      Full source code of this typical example of passing a 'bad' argument (negative
+      degrees of freedom) to Student's t distribution is <a class="link" href="stat_tut/weg/error_eg.html" title="Error Handling Example">in
+      the error handling example</a>.
+    </p>
+<p>
+      The various kind of errors are described in more detail below.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h3"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.domain_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.domain_error">Domain
+      Errors</a>
+    </h4>
+<p>
+      When a special function is passed an argument that is outside the range of
+      values for which that function is defined, then the function returns the result
+      of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_domain_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating-point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, Val is the value that was out of
+      range, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> is the current policy in use
+      for the function that was called.
+    </p>
+<p>
+      The default policy behaviour of this function is to throw a std::domain_error
+      C++ exception. But if the <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> is to ignore
+      the error, or set global <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>,
+      then a NaN will be returned.
+    </p>
+<p>
+      This behaviour is chosen to assist compatibility with the behaviour of <span class="emphasis"><em>ISO/IEC
+      9899:1999 Programming languages - C</em></span> and with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
+      Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph
+      6</a>:
+    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>"Each of the functions declared above shall return a NaN (Not
+        a Number) if any argument value is a NaN, but it shall not report a domain
+        error. Otherwise, each of the functions declared above shall report a domain
+        error for just those argument values for which:</em></span>
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+        <span class="emphasis"><em>"the function description's Returns clause explicitly specifies
+        a domain, and those arguments fall outside the specified domain; or</em></span>
+      </p>
+<p>
+        <span class="emphasis"><em>"the corresponding mathematical function value has a non-zero
+        imaginary component; or</em></span>
+      </p>
+<p>
+        <span class="emphasis"><em>"the corresponding mathematical function is not mathematically
+        defined.</em></span>
+      </p>
+</blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>"Note 2: A mathematical function is mathematically defined
+        for a given set of argument values if it is explicitly defined for that set
+        of argument values or if its limiting value exists and does not depend on
+        the direction of approach."</em></span>
+      </p></blockquote></div>
+<p>
+      Note that in order to support information-rich error messages when throwing
+      exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must contain
+      a Boost.Format recognised
+      format specifier: the argument <code class="computeroutput"><span class="identifier">Val</span></code>
+      is inserted into the error message according to the specifier used.
+    </p>
+<p>
+      For example if <code class="computeroutput"><span class="identifier">Message</span></code> contains
+      a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">Val</span></code>
+      to the full precision of T, where as "%.3g" would contain the value
+      of <code class="computeroutput"><span class="identifier">Val</span></code> to 3 digits. See the
+      Boost.Format documentation
+      for more details.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h4"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.pole_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.pole_error">Evaluation
+      at a pole</a>
+    </h4>
+<p>
+      When a special function is passed an argument that is at a pole without a well
+      defined residual value, then the function returns the result of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_pole_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, <code class="computeroutput"><span class="identifier">Val</span></code>
+      is the value of the argument that is at a pole, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>
+      is the current policy in use for the function that was called.
+    </p>
+<p>
+      The default behaviour of this function is to throw a std::domain_error exception.
+      But <a class="link" href="pol_ref/error_handling_policies.html" title="Error Handling Policies">error handling
+      policies</a> can be used to change this, for example to <code class="computeroutput"><span class="identifier">ignore_error</span></code>
+      and return NaN.
+    </p>
+<p>
+      Note that in order to support information-rich error messages when throwing
+      exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must contain
+      a Boost.Format recognised
+      format specifier: the argument <code class="computeroutput"><span class="identifier">val</span></code>
+      is inserted into the error message according to the specifier used.
+    </p>
+<p>
+      For example if <code class="computeroutput"><span class="identifier">Message</span></code> contains
+      a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">val</span></code>
+      to the full precision of T, where as "%.3g" would contain the value
+      of <code class="computeroutput"><span class="identifier">val</span></code> to 3 digits. See the
+      Boost.Format documentation
+      for more details.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h5"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.overflow_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.overflow_error">Numeric
+      Overflow</a>
+    </h4>
+<p>
+      When the result of a special function is too large to fit in the argument floating-point
+      type, then the function returns the result of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_overflow_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating-point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>
+      is the current policy in use for the function that was called.
+    </p>
+<p>
+      The default policy for this function is that <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code>
+      C++ exception is thrown. But if, for example, an <code class="computeroutput"><span class="identifier">ignore_error</span></code>
+      policy is used, then returns <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code>.
+      In this situation if the type <code class="computeroutput"><span class="identifier">T</span></code>
+      doesn't support infinities, the maximum value for the type is returned.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h6"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.underflow_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.underflow_error">Numeric
+      Underflow</a>
+    </h4>
+<p>
+      If the result of a special function is known to be non-zero, but the calculated
+      result underflows to zero, then the function returns the result of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_underflow_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>
+      is the current policy in use for the called function.
+    </p>
+<p>
+      The default version of this function returns zero. But with another policy,
+      like <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, throws
+      an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h7"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.denorm_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.denorm_error">Denormalisation
+      Errors</a>
+    </h4>
+<p>
+      If the result of a special function is a denormalised value <span class="emphasis"><em>z</em></span>
+      then the function returns the result of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_denorm_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>
+      is the current policy in use for the called function.
+    </p>
+<p>
+      The default version of this function returns <span class="emphasis"><em>z</em></span>. But with
+      another policy, like <code class="computeroutput"><span class="identifier">throw_on_error</span></code>
+      throws an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h8"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.evaluation_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.evaluation_error">Evaluation
+      Errors</a>
+    </h4>
+<p>
+      When a special function calculates a result that is known to be erroneous,
+      or where the result is incalculable then it calls:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_evaluation_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, <code class="computeroutput"><span class="identifier">Val</span></code>
+      is the erroneous value, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> is the current
+      policy in use for the called function.
+    </p>
+<p>
+      The default behaviour of this function is to throw a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">evaluation_error</span></code>.
+    </p>
+<p>
+      Note that in order to support information rich error messages when throwing
+      exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must contain
+      a Boost.Format recognised
+      format specifier: the argument <code class="computeroutput"><span class="identifier">val</span></code>
+      is inserted into the error message according to the specifier used.
+    </p>
+<p>
+      For example if <code class="computeroutput"><span class="identifier">Message</span></code> contains
+      a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">val</span></code>
+      to the full precision of T, where as "%.3g" would contain the value
+      of <code class="computeroutput"><span class="identifier">val</span></code> to 3 digits. See the
+      Boost.Format documentation
+      for more details.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h9"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.indeterminate_result_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.indeterminate_result_error">Indeterminate
+      Result Errors</a>
+    </h4>
+<p>
+      When the result of a special function is indeterminate for the value that was
+      passed to it, then the function returns the result of:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_overflow_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> <span class="identifier">Default</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating-point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, Val is the value for which the
+      result is indeterminate, Default is an alternative default result that must
+      be returned for <code class="computeroutput"><span class="identifier">ignore_error</span></code>
+      and <code class="computeroutput"><span class="identifier">errno_on_erro</span></code> policies,
+      and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> is the current policy in use for the
+      function that was called.
+    </p>
+<p>
+      The default policy for this function is <code class="computeroutput"><span class="identifier">ignore_error</span></code>:
+      note that this error type is reserved for situations where the result is mathematically
+      undefined or indeterminate, but there is none the less a convention for what
+      the result should be: for example the C99 standard specifies that the result
+      of 0<sup>0</sup> is 1, even though the result is actually mathematically indeterminate.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h10"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.rounding_error"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.rounding_error">Rounding
+      Errors</a>
+    </h4>
+<p>
+      When one of the rounding functions <a class="link" href="rounding/round.html" title="Rounding Functions">round</a>,
+      <a class="link" href="rounding/trunc.html" title="Truncation Functions">trunc</a> or <a class="link" href="rounding/modf.html" title="Integer and Fractional Part Splitting (modf)">modf</a>
+      is called with an argument that has no integer representation, or is too large
+      to be represented in the result type then the value returned is the result
+      of a call to:
+    </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_rounding_error</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">);</span>
+</pre>
+<p>
+      Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
+      type passed to the function, <code class="computeroutput"><span class="identifier">FunctionName</span></code>
+      is the name of the function, <code class="computeroutput"><span class="identifier">Message</span></code>
+      is an error message describing the problem, <code class="computeroutput"><span class="identifier">Val</span></code>
+      is the erroneous argument, and <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> is the
+      current policy in use for the called function.
+    </p>
+<p>
+      The default behaviour of this function is to throw a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">rounding_error</span></code>.
+    </p>
+<p>
+      Note that in order to support information rich error messages when throwing
+      exceptions, <code class="computeroutput"><span class="identifier">Message</span></code> must contain
+      a Boost.Format recognised
+      format specifier: the argument <code class="computeroutput"><span class="identifier">val</span></code>
+      is inserted into the error message according to the specifier used.
+    </p>
+<p>
+      For example if <code class="computeroutput"><span class="identifier">Message</span></code> contains
+      a "%1%" then it is replaced by the value of <code class="computeroutput"><span class="identifier">val</span></code>
+      to the full precision of T, where as "%.3g" would contain the value
+      of <code class="computeroutput"><span class="identifier">val</span></code> to 3 digits. See the
+      Boost.Format documentation
+      for more details.
+    </p>
+<h4>
+<a name="math_toolkit.error_handling.h11"></a>
+      <span class="phrase"><a name="math_toolkit.error_handling.checked_narrowing_cast"></a></span><a class="link" href="error_handling.html#math_toolkit.error_handling.checked_narrowing_cast">Errors
+      from typecasts</a>
+    </h4>
+<p>
+      Many special functions evaluate their results at a higher precision than their
+      arguments in order to ensure full machine precision in the result: for example,
+      a function passed a float argument may evaluate its result using double precision
+      internally. Many of the errors listed above may therefore occur not during
+      evaluation, but when converting the result to the narrower result type. The
+      function:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">checked_narrowing_cast</span><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">);</span>
+</pre>
+<p>
+      Is used to perform these conversions, and will call the error handlers listed
+      above on <a class="link" href="error_handling.html#math_toolkit.error_handling.overflow_error">overflow</a>,
+      <a class="link" href="error_handling.html#math_toolkit.error_handling.underflow_error">underflow</a>
+      or <a class="link" href="error_handling.html#math_toolkit.error_handling.denorm_error">denormalisation</a>.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="result_type.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="compilers_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/exp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/exp.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Quaternionic Exponential</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="tests.html" title="Test Program">
+<link rel="next" href="acknowledgement.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tests.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgement.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_exp">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.exp"></a><a class="link" href="exp.html" title="The Quaternionic Exponential">The Quaternionic Exponential</a>
+</h2></div></div></div>
+<p>
+      Please refer to the following PDF's:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <a href="../../../../quaternion/TQE.pdf" target="_top">The Quaternionic Exponential (and
+          beyond)</a>
+        </li>
+<li class="listitem">
+          <a href="../../../../quaternion/TQE_EA.pdf" target="_top">The Quaternionic Exponential
+          (and beyond) ERRATA & ADDENDA</a>
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tests.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgement.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/expint.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/expint.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Exponential Integrals</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="zetas/zeta.html" title="Riemann Zeta Function">
+<link rel="next" href="expint/expint_n.html" title="Exponential Integral En">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="zetas/zeta.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="expint/expint_n.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_expint">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.expint"></a><a class="link" href="expint.html" title="Exponential Integrals">Exponential Integrals</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Exponential Integral En</span></dt>
+<dt><span class="section">Exponential Integral Ei</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="zetas/zeta.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="expint/expint_n.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_i.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_i.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,286 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Exponential Integral Ei</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../expint.html" title="Exponential Integrals">
+<link rel="prev" href="expint_n.html" title="Exponential Integral En">
+<link rel="next" href="../powers.html" title="Basic Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="expint_n.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../powers.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_expint_expint_i">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.expint.expint_i"></a><a class="link" href="expint_i.html" title="Exponential Integral Ei">Exponential Integral Ei</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.expint.expint_i.h0"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_i.synopsis"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_i.h1"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_i.description"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the <a href="http://mathworld.wolfram.com/ExponentialIntegral.html" target="_top">exponential
+        integral</a> of z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_i_1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/expint_i.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_i.h2"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_i.accuracy"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to Cody's SPECFUN implementation and the GSL-1.9
+        library. Unless otherwise specified any floating point type that is narrower
+        than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.expint.expint_i.errors_in_the_function_expint_z"></a><p class="title"><b>Table 3.32. Errors In the Function expint(z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function expint(z)">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Error
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.4 Mean=0.6
+                </p>
+                <p>
+                  GSL Peak=8.9 Mean=0.7
+                </p>
+                <p>
+                  SPECFUN (Cody) Peak=2.5 Mean=0.6
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA_EM64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.1 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.0 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.9 Mean=0.63
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        It should be noted that all three libraries tested above offer sub-epsilon
+        precision over most of their range.
+      </p>
+<p>
+        GSL has the greatest difficulty near the positive root of En, while Cody's
+        SPECFUN along with this implementation increase their error rates very slightly
+        over the range [4,6].
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_i.h3"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_i.testing"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.testing">Testing</a>
+      </h5>
+<p>
+        The tests for these functions come in two parts: basic sanity checks use
+        spot values calculated using <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=ExpIntegralEi" target="_top">Mathworld's
+        online evaluator</a>, while accuracy checks use high-precision test values
+        calculated at 1000-bit precision with NTL::RR
+        and this implementation. Note that the generic and type-specific versions
+        of these functions use differing implementations internally, so this gives
+        us reasonably independent test data. Using our test data to test other "known
+        good" implementations also provides an additional sanity check.
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_i.h4"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_i.implementation"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.implementation">Implementation</a>
+      </h5>
+<p>
+        For x < 0 this function just calls <a class="link" href="expint_n.html" title="Exponential Integral En">zeta</a>(1,
+        -x): which in turn is implemented in terms of rational approximations when
+        the type of x has 113 or fewer bits of precision.
+      </p>
+<p>
+        For x > 0 the generic version is implemented using the infinte series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_i_2.png"></span>
+      </p>
+<p>
+        However, when the precision of the argument type is known at compile time
+        and is 113 bits or less, then rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> are used.
+      </p>
+<p>
+        For 0 < z < 6 a root-preserving approximation of the form:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_i_3.png"></span>
+      </p>
+<p>
+        is used, where z<sub>0</sub> is the positive root of the function, and R(z/3 - 1) is
+        a minimax rational approximation rescaled so that it is evaluated over [-1,1].
+        Note that while the rational approximation over [0,6] converges rapidly to
+        the minimax solution it is rather ill-conditioned in practice. Cody and Thacher
+        [5] experienced the same issue and converted the polynomials into
+        Chebeshev form to ensure stable computation. By experiment we found that
+        the polynomials are just as stable in polynomial as Chebyshev form, <span class="emphasis"><em>provided</em></span>
+        they are computed over the interval [-1,1].
+      </p>
+<p>
+        Over the a series of intervals [a,b] and [b,INF] the rational approximation
+        takes the form:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_i_4.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>c</em></span> is a constant, and R(t) is a minimax solution
+        optimised for low absolute error compared to <span class="emphasis"><em>c</em></span>. Variable
+        <span class="emphasis"><em>t</em></span> is <code class="computeroutput"><span class="number">1</span><span class="special">/</span><span class="identifier">z</span></code> when the range in infinite and <code class="computeroutput"><span class="number">2</span><span class="identifier">z</span><span class="special">/(</span><span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span> <span class="special">-</span> <span class="special">(</span><span class="number">2</span><span class="identifier">a</span><span class="special">/(</span><span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span></code> otherwise: this has the effect of scaling
+        z to the interval [-1,1]. As before rational approximations over arbitrary
+        intervals were found to be ill-conditioned: Cody and Thacher solved this
+        issue by converting the polynomials to their J-Fraction equivalent. However,
+        as long as the interval of evaluation was [-1,1] and the number of terms
+        carefully chosen, it was found that the polynomials <span class="emphasis"><em>could</em></span>
+        be evaluated to suitable precision: error rates are typically 2 to 3 epsilon
+        which is comparible to the error rate that Cody and Thacher achieved using
+        J-Fractions, but marginally more efficient given that fewer divisions are
+        involved.
+      </p>
+<div class="footnotes">
+<br><hr style="width:100; text-align:left;margin-left: 0">
+<div id="ftn.math_toolkit.expint.expint_i.f0" class="footnote"><p>[5] 
+          W. J. Cody and H. C. Thacher, Jr., Rational Chebyshev approximations for
+          the exponential integral E<sub>1</sub>(x), Math. Comp. 22 (1968), 641-649, and W.
+          J. Cody and H. C. Thacher, Jr., Chebyshev approximations for the exponential
+          integral Ei(x), Math. Comp. 23 (1969), 289-303.
+        </p></div>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="expint_n.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../powers.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_n.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/expint/expint_n.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,284 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Exponential Integral En</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../expint.html" title="Exponential Integrals">
+<link rel="prev" href="../expint.html" title="Exponential Integrals">
+<link rel="next" href="expint_i.html" title="Exponential Integral Ei">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../expint.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="expint_i.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_expint_expint_n">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.expint.expint_n"></a><a class="link" href="expint_n.html" title="Exponential Integral En">Exponential Integral En</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.expint.expint_n.h0"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_n.synopsis"></a></span><a class="link" href="expint_n.html#math_toolkit.expint.expint_n.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_n.h1"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_n.description"></a></span><a class="link" href="expint_n.html#math_toolkit.expint.expint_n.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the <a href="http://mathworld.wolfram.com/En-Function.html" target="_top">exponential
+        integral En</a> of z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_n_1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/expint2.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_n.h2"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_n.accuracy"></a></span><a class="link" href="expint_n.html#math_toolkit.expint.expint_n.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to the Cephes library.
+        Unless otherwise specified any floating point type that is narrower than
+        the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.expint.expint_n.errors_in_the_function_expint_n_"></a><p class="title"><b>Table 3.31. Errors In the Function expint(n, z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function expint(n, z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  En
+                </p>
+              </th>
+<th>
+                <p>
+                  E1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=7.1 Mean=1.8
+                </p>
+                <p>
+                  Cephes Peak=5.1
+                  Mean=1.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.5
+                </p>
+                <p>
+                  Cephes Peak=3.1
+                  Mean=1.1
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA_EM64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=9.9 Mean=2.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.97 Mean=0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=9.9 Mean=2.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.97 Mean=0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=23.3 Mean=3.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.6 Mean=0.5
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.expint.expint_n.h3"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_n.testing"></a></span><a class="link" href="expint_n.html#math_toolkit.expint.expint_n.testing">Testing</a>
+      </h5>
+<p>
+        The tests for these functions come in two parts: basic sanity checks use
+        spot values calculated using <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=ExpIntegralE" target="_top">Mathworld's
+        online evaluator</a>, while accuracy checks use high-precision test values
+        calculated at 1000-bit precision with NTL::RR
+        and this implementation. Note that the generic and type-specific versions
+        of these functions use differing implementations internally, so this gives
+        us reasonably independent test data. Using our test data to test other "known
+        good" implementations also provides an additional sanity check.
+      </p>
+<h5>
+<a name="math_toolkit.expint.expint_n.h4"></a>
+        <span class="phrase"><a name="math_toolkit.expint.expint_n.implementation"></a></span><a class="link" href="expint_n.html#math_toolkit.expint.expint_n.implementation">Implementation</a>
+      </h5>
+<p>
+        The generic version of this function uses the continued fraction:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_n_3.png"></span>
+      </p>
+<p>
+        for large <span class="emphasis"><em>x</em></span> and the infinite series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_n_2.png"></span>
+      </p>
+<p>
+        for small <span class="emphasis"><em>x</em></span>.
+      </p>
+<p>
+        Where the precision of <span class="emphasis"><em>x</em></span> is known at compile time and
+        is 113 bits or fewer in precision, then rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> are used for the <code class="computeroutput"><span class="identifier">n</span>
+        <span class="special">==</span> <span class="number">1</span></code>
+        case.
+      </p>
+<p>
+        For <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span>
+        <span class="number">1</span></code> the approximating form is a minimax
+        approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_n_4.png"></span>
+      </p>
+<p>
+        and for <code class="computeroutput"><span class="identifier">x</span> <span class="special">></span>
+        <span class="number">1</span></code> a Chebyshev interpolated approximation
+        of the form:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/expint_n_5.png"></span>
+      </p>
+<p>
+        is used.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../expint.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="expint_i.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Factorials and Binomial Coefficients</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="sf_gamma/gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">
+<link rel="next" href="factorials/sf_factorial.html" title="Factorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_gamma/gamma_derivatives.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="factorials/sf_factorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.factorials"></a><a class="link" href="factorials.html" title="Factorials and Binomial Coefficients">Factorials and Binomial Coefficients</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Factorial</span></dt>
+<dt><span class="section">Double Factorial</span></dt>
+<dt><span class="section">Rising Factorial</span></dt>
+<dt><span class="section"><a href="factorials/sf_falling_factorial.html">Falling
+      Factorial</a></span></dt>
+<dt><span class="section">Binomial Coefficients</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_gamma/gamma_derivatives.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="factorials/sf_factorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_binomial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_binomial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,135 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binomial Coefficients</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="prev" href="sf_falling_factorial.html" title="Falling Factorial">
+<link rel="next" href="../sf_beta.html" title="Beta Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_falling_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_beta.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials_sf_binomial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.factorials.sf_binomial"></a><a class="link" href="sf_binomial.html" title="Binomial Coefficients">Binomial Coefficients</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">binomial_coefficient</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">binomial_coefficient</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the binomial coefficient: <sub>n</sub>C<sub>k</sub>.
+      </p>
+<p>
+        Requires k <= n.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        May return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if the result is too large to represent in type T.
+      </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The functions described above are templates where the template argument
+          T can not be deduced from the arguments passed to the function. Therefore
+          if you write something like:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_coefficient</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          You will get a compiler error, ususally indicating that there is no such
+          function to be found. Instead you need to specifiy the return type explicity
+          and write:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_coefficient</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          So that the return type is known. Further, the template argument must be
+          a real-valued type such as <code class="computeroutput"><span class="keyword">float</span></code>
+          or <code class="computeroutput"><span class="keyword">double</span></code> and not an integer
+          type - that would overflow far too easily!
+        </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.factorials.sf_binomial.h0"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_binomial.accuracy"></a></span><a class="link" href="sf_binomial.html#math_toolkit.factorials.sf_binomial.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The accuracy will be the same as for the factorials for small arguments (i.e.
+        no more than one or two epsilon), and the <a class="link" href="../sf_beta/beta_function.html" title="Beta">beta</a>
+        function for larger arguments.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_binomial.h1"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_binomial.testing"></a></span><a class="link" href="sf_binomial.html#math_toolkit.factorials.sf_binomial.testing">Testing</a>
+      </h5>
+<p>
+        The spot tests for the binomial coefficients use data generated by functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_binomial.h2"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_binomial.implementation"></a></span><a class="link" href="sf_binomial.html#math_toolkit.factorials.sf_binomial.implementation">Implementation</a>
+      </h5>
+<p>
+        Binomial coefficients are calculated using table lookup of factorials where
+        possible using:
+      </p>
+<p>
+        <sub>n</sub>C<sub>k</sub> = n! / (k!(n-k)!)
+      </p>
+<p>
+        Otherwise it is implemented in terms of the beta function using the relations:
+      </p>
+<p>
+        <sub>n</sub>C<sub>k</sub> = 1 / (k * <a class="link" href="../sf_beta/beta_function.html" title="Beta">beta</a>(k,
+        n-k+1))
+      </p>
+<p>
+        and
+      </p>
+<p>
+        <sub>n</sub>C<sub>k</sub> = 1 / ((n-k) * <a class="link" href="../sf_beta/beta_function.html" title="Beta">beta</a>(k+1,
+        n-k))
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_falling_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_beta.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_double_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_double_factorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,151 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Double Factorial</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="prev" href="sf_factorial.html" title="Factorial">
+<link rel="next" href="sf_rising_factorial.html" title="Rising Factorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_rising_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials_sf_double_factorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.factorials.sf_double_factorial"></a><a class="link" href="sf_double_factorial.html" title="Double Factorial">Double Factorial</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">double_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">double_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns <code class="literal">i!!</code>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        May return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if the result is too large to represent in type T. The implementation is
+        designed to be optimised for small <span class="emphasis"><em>i</em></span> where table lookup
+        of i! is possible.
+      </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The functions described above are templates where the template argument
+          T can not be deduced from the arguments passed to the function. Therefore
+          if you write something like:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_factorial</span><span class="special">(</span><span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          You will get a (possibly perplexing) compiler error, ususally indicating
+          that there is no such function to be found. Instead you need to specifiy
+          the return type explicity and write:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_factorial</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          So that the return type is known. Further, the template argument must be
+          a real-valued type such as <code class="computeroutput"><span class="keyword">float</span></code>
+          or <code class="computeroutput"><span class="keyword">double</span></code> and not an integer
+          type - that would overflow far too easily!
+        </p>
+<p>
+          The source code <code class="computeroutput"><span class="keyword">static_assert</span></code>
+          and comment just after the will be:
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(!</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span><span class="special">);</span>
+<span class="comment">// factorial<unsigned int>(n) is not implemented</span>
+<span class="comment">// because it would overflow integral type T for too small n</span>
+<span class="comment">// to be useful. Use instead a floating-point type,</span>
+<span class="comment">// and convert to an unsigned type if essential, for example:</span>
+<span class="comment">// unsigned int nfac = static_cast<unsigned int>(factorial<double>(n));</span>
+<span class="comment">// See factorial documentation for more detail.</span>
+</pre>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          The argument to <code class="computeroutput"><span class="identifier">double_factorial</span></code>
+          is type <code class="computeroutput"><span class="keyword">unsigned</span></code> even though
+          technically -1!! is defined.
+        </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.factorials.sf_double_factorial.h0"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_double_factorial.accuracy"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.factorials.sf_double_factorial.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The implementation uses a trivial adaptation of the factorial function, so
+        error rates should be no more than a couple of epsilon higher.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_double_factorial.h1"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_double_factorial.testing"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.factorials.sf_double_factorial.testing">Testing</a>
+      </h5>
+<p>
+        The spot tests for the double factorial use data generated by functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_double_factorial.h2"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_double_factorial.implementation"></a></span><a class="link" href="sf_double_factorial.html#math_toolkit.factorials.sf_double_factorial.implementation">Implementation</a>
+      </h5>
+<p>
+        The double factorial is implemented in terms of the factorial and gamma functions
+        using the relations:
+      </p>
+<p>
+        (2n)!! = 2<sup>n </sup> * n!
+      </p>
+<p>
+        (2n+1)!! = (2n+1)! / (2<sup>n </sup> n!)
+      </p>
+<p>
+        and
+      </p>
+<p>
+        (2n-1)!! = Γ((2n+1)/2) * 2<sup>n </sup> / sqrt(pi)
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_rising_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_factorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,183 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Factorial</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="prev" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="next" href="sf_double_factorial.html" title="Double Factorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../factorials.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_double_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials_sf_factorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.factorials.sf_factorial"></a><a class="link" href="sf_factorial.html" title="Factorial">Factorial</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.factorials.sf_factorial.h0"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_factorial.synopsis"></a></span><a class="link" href="sf_factorial.html#math_toolkit.factorials.sf_factorial.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">unchecked_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">max_factorial</span><span class="special">;</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.factorials.sf_factorial.h1"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_factorial.description"></a></span><a class="link" href="sf_factorial.html#math_toolkit.factorials.sf_factorial.description">Description</a>
+      </h5>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The functions described below are templates where the template argument
+          T CANNOT be deduced from the arguments passed to the function. Therefore
+          if you write something like:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">factorial</span><span class="special">(</span><span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          You will get a (perhaps perplexing) compiler error, ususally indicating
+          that there is no such function to be found. Instead you need to specify
+          the return type explicity and write:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">factorial</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="number">2</span><span class="special">);</span></code>
+        </p>
+<p>
+          So that the return type is known.
+        </p>
+<p>
+          Furthermore, the template argument must be a real-valued type such as
+          <code class="computeroutput"><span class="keyword">float</span></code> or <code class="computeroutput"><span class="keyword">double</span></code>
+          and not an integer type - that would overflow far too easily for quite
+          small values of parameter <code class="computeroutput"><span class="identifier">i</span></code>!
+        </p>
+<p>
+          The source code <code class="computeroutput"><span class="keyword">static_assert</span></code>
+          and comment just after the will be:
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(!</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span><span class="special">);</span>
+<span class="comment">// factorial<unsigned int>(n) is not implemented</span>
+<span class="comment">// because it would overflow integral type T for too small n</span>
+<span class="comment">// to be useful. Use instead a floating-point type,</span>
+<span class="comment">// and convert to an unsigned type if essential, for example:</span>
+<span class="comment">// unsigned int nfac = static_cast<unsigned int>(factorial<double>(n));</span>
+<span class="comment">// See factorial documentation for more detail.</span>
+</pre>
+</td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns <code class="literal">i!</code>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        For <code class="literal">i <= max_factorial<T>::value</code> this is implemented
+        by table lookup, for larger values of <code class="literal">i</code>, this function
+        is implemented in terms of <a class="link" href="../sf_gamma/tgamma.html" title="Gamma">tgamma</a>.
+      </p>
+<p>
+        If <code class="literal">i</code> is so large that the result can not be represented
+        in type T, then calls <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">unchecked_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+</pre>
+<p>
+        Returns <code class="literal">i!</code>.
+      </p>
+<p>
+        Internally this function performs table lookup of the result. Further it
+        performs no range checking on the value of i: it is up to the caller to ensure
+        that <code class="literal">i <= max_factorial<T>::value</code>. This function
+        is intended to be used inside inner loops that require fast table lookup
+        of factorials, but requires care to ensure that argument <code class="literal">i</code>
+        never grows too large.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">max_factorial</span>
+<span class="special">{</span>
+   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">X</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        This traits class defines the largest value that can be passed to <code class="literal">unchecked_factorial</code>.
+        The member <code class="computeroutput"><span class="identifier">value</span></code> can be used
+        where integral constant expressions are required: for example to define the
+        size of further tables that depend on the factorials.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_factorial.h2"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_factorial.accuracy"></a></span><a class="link" href="sf_factorial.html#math_toolkit.factorials.sf_factorial.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For arguments smaller than <code class="computeroutput"><span class="identifier">max_factorial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span></code> the result should be correctly rounded.
+        For larger arguments the accuracy will be the same as for <a class="link" href="../sf_gamma/tgamma.html" title="Gamma">tgamma</a>.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_factorial.h3"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_factorial.testing"></a></span><a class="link" href="sf_factorial.html#math_toolkit.factorials.sf_factorial.testing">Testing</a>
+      </h5>
+<p>
+        Basic sanity checks and spot values to verify the data tables: the main tests
+        for the <a class="link" href="../sf_gamma/tgamma.html" title="Gamma">tgamma</a> function
+        handle those cases already.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_factorial.h4"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_factorial.implementation"></a></span><a class="link" href="sf_factorial.html#math_toolkit.factorials.sf_factorial.implementation">Implementation</a>
+      </h5>
+<p>
+        The factorial function is table driven for small arguments, and is implemented
+        in terms of <a class="link" href="../sf_gamma/tgamma.html" title="Gamma">tgamma</a> for
+        larger arguments.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../factorials.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_double_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_falling_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_falling_factorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Falling Factorial</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="prev" href="sf_rising_factorial.html" title="Rising Factorial">
+<link rel="next" href="sf_binomial.html" title="Binomial Coefficients">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_rising_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_binomial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials_sf_falling_factorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.factorials.sf_falling_factorial"></a><a class="link" href="sf_falling_factorial.html" title="Falling Factorial">Falling
+      Factorial</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">falling_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">falling_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the falling factorial of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>i</em></span>:
+      </p>
+<p>
+        falling_factorial(x, i) = x(x-1)(x-2)(x-3)...(x-i+1)
+      </p>
+<p>
+        Note that this function is only defined for positive <span class="emphasis"><em>i</em></span>,
+        hence the <code class="computeroutput"><span class="keyword">unsigned</span></code> second argument.
+        Argument <span class="emphasis"><em>x</em></span> can be either positive or negative however.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        May return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if the result is too large to represent in type T.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the type of the result is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, otherwise
+        the type of the result is T.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_falling_factorial.h0"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_falling_factorial.accuracy"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.factorials.sf_falling_factorial.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The accuracy will be the same as the <a class="link" href="../sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions">tgamma_delta_ratio</a>
+        function.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_falling_factorial.h1"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_falling_factorial.testing"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.factorials.sf_falling_factorial.testing">Testing</a>
+      </h5>
+<p>
+        The spot tests for the falling factorials use data generated by functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_falling_factorial.h2"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_falling_factorial.implementation"></a></span><a class="link" href="sf_falling_factorial.html#math_toolkit.factorials.sf_falling_factorial.implementation">Implementation</a>
+      </h5>
+<p>
+        Rising and falling factorials are implemented as ratios of gamma functions
+        using <a class="link" href="../sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions">tgamma_delta_ratio</a>.
+        Optimisations for small integer arguments are handled internally by that
+        function.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_rising_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_binomial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_rising_factorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/factorials/sf_rising_factorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,104 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rising Factorial</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../factorials.html" title="Factorials and Binomial Coefficients">
+<link rel="prev" href="sf_double_factorial.html" title="Double Factorial">
+<link rel="next" href="sf_falling_factorial.html" title="Falling Factorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_double_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_falling_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_factorials_sf_rising_factorial">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.factorials.sf_rising_factorial"></a><a class="link" href="sf_rising_factorial.html" title="Rising Factorial">Rising Factorial</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">rising_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">rising_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the rising factorial of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>i</em></span>:
+      </p>
+<p>
+        rising_factorial(x, i) = Γ(x + i) / Γ(x);
+      </p>
+<p>
+        or
+      </p>
+<p>
+        rising_factorial(x, i) = x(x+1)(x+2)(x+3)...(x+i-1)
+      </p>
+<p>
+        Note that both <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>i</em></span> can be negative
+        as well as positive.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        May return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        if the result is too large to represent in type T.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the type of the result is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, otherwise
+        the type of the result is T.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_rising_factorial.h0"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_rising_factorial.accuracy"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.factorials.sf_rising_factorial.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The accuracy will be the same as the <a class="link" href="../sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions">tgamma_delta_ratio</a>
+        function.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_rising_factorial.h1"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_rising_factorial.testing"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.factorials.sf_rising_factorial.testing">Testing</a>
+      </h5>
+<p>
+        The spot tests for the rising factorials use data generated by functions.wolfram.com.
+      </p>
+<h5>
+<a name="math_toolkit.factorials.sf_rising_factorial.h2"></a>
+        <span class="phrase"><a name="math_toolkit.factorials.sf_rising_factorial.implementation"></a></span><a class="link" href="sf_rising_factorial.html#math_toolkit.factorials.sf_rising_factorial.implementation">Implementation</a>
+      </h5>
+<p>
+        Rising and falling factorials are implemented as ratios of gamma functions
+        using <a class="link" href="../sf_gamma/gamma_ratios.html" title="Ratios of Gamma Functions">tgamma_delta_ratio</a>.
+        Optimisations for small integer arguments are handled internally by that
+        function.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_double_factorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sf_falling_factorial.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/faq.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/faq.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,473 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>FAQs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="prev" href="new_const.html" title="Defining New Constants">
+<link rel="next" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="new_const.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../inverse_complex.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_FAQ">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.FAQ"></a><a class="link" href="FAQ.html" title="FAQs">FAQs</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.FAQ.h0"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.why_are_these_constants_chosen"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.why_are_these_constants_chosen">Why
+      are <span class="emphasis"><em>these</em></span> Constants Chosen?</a>
+    </h5>
+<p>
+      It is, of course, impossible to please everyone with a list like this.
+    </p>
+<p>
+      Some of the criteria we have used are:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Used in Boost.Math.
+        </li>
+<li class="listitem">
+          Commonly used.
+        </li>
+<li class="listitem">
+          Expensive to compute.
+        </li>
+<li class="listitem">
+          Requested by users.
+        </li>
+<li class="listitem">
+          <a href="http://en.wikipedia.org/wiki/Mathematical_constant" target="_top">Used in
+          science and mathematics.</a>
+        </li>
+<li class="listitem">
+          No integer values (because so cheap to construct).<br> (You can easily
+          define your own if found convenient, for example: <code class="computeroutput"><span class="identifier">FPT</span>
+          <span class="identifier">one</span> <span class="special">=</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">FPT</span><span class="special">>(</span><span class="number">42</span><span class="special">);</span></code>).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.FAQ.h1"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.how_are_constants_named"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.how_are_constants_named">How
+      are constants named?</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Not macros, so no upper case.
+        </li>
+<li class="listitem">
+          All lower case (following C++ standard names).
+        </li>
+<li class="listitem">
+          No CamelCase.
+        </li>
+<li class="listitem">
+          Underscore as _ delimiter between words.
+        </li>
+<li class="listitem">
+          Numbers spelt as words rather than decimal digits (except following pow).
+        </li>
+<li class="listitem">
+          Abbreviation conventions:
+          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem">
+                root for square root.
+              </li>
+<li class="listitem">
+                cbrt for cube root.
+              </li>
+<li class="listitem">
+                pow for pow function using decimal digits like pow23 for n<sup>2/3</sup>.
+              </li>
+<li class="listitem">
+                div for divided by or operator /.
+              </li>
+<li class="listitem">
+                minus for operator -, plus for operator +.
+              </li>
+<li class="listitem">
+                sqr for squared.
+              </li>
+<li class="listitem">
+                cubed for cubed n<sup>3</sup>.
+              </li>
+<li class="listitem">
+                words for greek, like π, ζ and Γ.
+              </li>
+<li class="listitem">
+                words like half, third, three_quarters, sixth for fractions. (Digit(s)
+                can get muddled).
+              </li>
+<li class="listitem">
+                log10 for log<sub>10</sub>
+              </li>
+<li class="listitem">
+                ln for log<sub>e</sub>
+              </li>
+</ul></div>
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.FAQ.h2"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.how_are_the_constants_derived"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.how_are_the_constants_derived">How
+      are the constants derived?</a>
+    </h5>
+<p>
+      The constants have all been calculated using high-precision software working
+      with up to 300-bit precision giving about 100 decimal digits. (The precision
+      can be arbitrarily chosen and is limited only by compute time).
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h3"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.how_accurate_are_the_constants"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.how_accurate_are_the_constants">How
+      Accurate are the constants?</a>
+    </h5>
+<p>
+      The minimum accuracy chosen (100 decimal digits) exceeds the accuracy of reasonably-foreseeable
+      floating-point hardware (256-bit) and should meet most high-precision computations.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h4"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.how_are_the_constants_tested"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.how_are_the_constants_tested">How
+      are the constants tested?</a>
+    </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          Comparison using Boost.Test BOOST_CHECK_CLOSE_FRACTION using long double
+          literals, with at least 35 decimal digits, enough to be accurate for all
+          long double implementations. The tolerance is usually twice <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">epsilon</span></code>.
+        </li>
+<li class="listitem">
+          Comparison with calculation at long double precision. This often requires
+          a slightly higher tolerance than two epsilon because of computational noise
+          from round-off etc, especially when trig and other functions are called.
+        </li>
+<li class="listitem">
+          Comparison with independent published values, for example, using The On-Line Encyclopedia of Integer Sequences (OEIS)
+          again using at least 35 decimal digits strings.
+        </li>
+<li class="listitem">
+          Comparison with independely calculated values using arbitrary precision
+          tools like Mathematica,
+          again using at least 35 decimal digits literal strings.
+        </li>
+</ol></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        We have not yet been able to <span class="bold"><strong>check</strong></span> that
+        <span class="bold"><strong>all</strong></span> constants are accurate at the full arbitrary
+        precision, at present 100 decimal digits. But certain key values like <code class="computeroutput"><span class="identifier">e</span></code> and <code class="computeroutput"><span class="identifier">pi</span></code>
+        appear to be accurate and internal consistencies suggest that others are
+        this accurate too.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.FAQ.h5"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.why_is_portability_important"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.why_is_portability_important">Why
+      is Portability important?</a>
+    </h5>
+<p>
+      Code written using math constants is easily portable even when using different
+      floating-point types with differing precision.
+    </p>
+<p>
+      It is a mistake to expect that results of computations will be <span class="bold"><strong>identical</strong></span>,
+      but you can achieve the <span class="bold"><strong>best accuracy possible for the
+      floating-point type in use</strong></span>.
+    </p>
+<p>
+      This has no extra cost to the user, but reduces irritating, and often confusing
+      and very hard-to-trace effects, caused by the intrinsically limited precision
+      of floating-point calculations.
+    </p>
+<p>
+      A harmless symptom of this limit is a spurious least-significant digit; at
+      worst, slightly inaccurate constants sometimes cause iterating algorithms to
+      diverge wildly because internal comparisons just fail.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h6"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.what_is_the_internal_format_of_t"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.what_is_the_internal_format_of_t">What
+      is the Internal Format of the constants, and why?</a>
+    </h5>
+<p>
+      See <a class="link" href="tutorial.html" title="Tutorial">tutorial</a> above for normal
+      use, but this FAQ explains the internal details used for the constants.
+    </p>
+<p>
+      Constants are stored as 100 decimal digit values. However, some compilers do
+      not accept decimal digits strings as long as this. So the constant is split
+      into two parts, with the first containing at least 128-bit long double precision
+      (35 decimal digits), and for consistency should be in scientific format with
+      a signed exponent.
+    </p>
+<p>
+      The second part is the value of the constant expressed as a string literal,
+      accurate to at least 100 decimal digits (in practice that means at least 102
+      digits). Again for consistency use scientific format with a signed exponent.
+    </p>
+<p>
+      For types with precision greater than a long double, then if T is constructible
+      <code class="computeroutput"><span class="identifier">T</span> </code>is constructible from a
+      <code class="computeroutput"><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span></code> then it's directly constructed from the string,
+      otherwise we fall back on lexical_cast to convert to type <code class="computeroutput"><span class="identifier">T</span></code>.
+      (Using a string is necessary because you can't use a numeric constant since
+      even a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      might not have enough digits).
+    </p>
+<p>
+      So, for example, a constant like pi is internally defined as
+    </p>
+<pre class="programlisting"><span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">pi</span><span class="special">,</span> <span class="number">3.141592653589793238462643383279502884e+00</span><span class="special">,</span> <span class="string">"3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651e+00"</span><span class="special">);</span>
+</pre>
+<p>
+      In this case the significand is 109 decimal digits, ensuring 100 decimal digits
+      are exact, and exponent is zero.
+    </p>
+<p>
+      See <a class="link" href="new_const.html" title="Defining New Constants">defining new constants</a> to
+      calculate new constants.
+    </p>
+<p>
+      A macro definition like this can be pasted into user code where convenient,
+      or into <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span></code> if it
+      is to be added to the Boost.Math library.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h7"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.what_floating_point_types_could_"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.what_floating_point_types_could_">What
+      Floating-point Types could I use?</a>
+    </h5>
+<p>
+      Apart from the built-in floating-point types <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, there are several arbitrary
+      precision floating-point classes available, but most are not licensed for commercial
+      use.
+    </p>
+<h6>
+<a name="math_toolkit.FAQ.h8"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.boost_multiprecision_by_christop"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.boost_multiprecision_by_christop">Boost.Multiprecision
+      by Christopher Kormanyos</a>
+    </h6>
+<p>
+      This work is based on an earlier work called e-float: Algorithm 910: A Portable
+      C++ Multiple-Precision System for Special-Function Calculations, in ACM TOMS,
+      {VOL 37, ISSUE 4, (February 2011)} (C) ACM, 2011. http://doi.acm.org/10.1145/1916461.1916469
+      e_float
+      but is now re-factored and available under the Boost license in the Boost-sandbox
+      at multiprecision
+      where it is being refined and prepared for review.
+    </p>
+<h6>
+<a name="math_toolkit.FAQ.h9"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.boost_cpp_float_by_john_maddock_"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.boost_cpp_float_by_john_maddock_">Boost.cpp_float
+      by John Maddock using Expression Templates</a>
+    </h6>
+<p>
+      Big Number
+      which is a reworking of e_float
+      by Christopher Kormanyos to use expression templates for faster execution.
+    </p>
+<h6>
+<a name="math_toolkit.FAQ.h10"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.ntl_class_quad_float"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.ntl_class_quad_float">NTL
+      class quad_float</a>
+    </h6>
+<p>
+      NTL by Victor Shoup has fixed and
+      arbitrary high precision fixed and floating-point types. However none of these
+      are licenced for commercial use.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">NTL</span><span class="special">/</span><span class="identifier">quad_float</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span> <span class="comment">// quad precision 106-bit, about 32 decimal digits.</span>
+<span class="keyword">using</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">to_quad_float</span><span class="special">;</span> <span class="comment">// Less precise than arbitrary precision NTL::RR.</span>
+</pre>
+<p>
+      NTL class <code class="computeroutput"><span class="identifier">quad_float</span></code>, which
+      gives a form of quadruple precision, 106-bit significand (but without an extended
+      exponent range.) With an IEC559/IEEE 754 compatible processor, for example
+      Intel X86 family, with 64-bit double, and 53-bit significand, using the significands
+      of <span class="bold"><strong>two</strong></span> 64-bit doubles, if <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">digits10</span></code> is 16, then we get about twice the
+      precision, so <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">quad_float</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">()</span></code>
+      should be 32. (the default <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RR</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">()</span></code>
+      should be about 40). (which seems to agree with experiments). We output constants
+      (including some noisy bits, an approximation to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RR</span><span class="special">>::</span><span class="identifier">max_digits10</span><span class="special">()</span></code>)
+      by adding 2 extra decimal digits, so using <code class="computeroutput"><span class="identifier">quad_float</span><span class="special">::</span><span class="identifier">SetOutputPrecision</span><span class="special">(</span><span class="number">32</span> <span class="special">+</span>
+      <span class="number">2</span><span class="special">);</span></code>
+    </p>
+<p>
+      Apple Mac/Darwin uses a similar <span class="emphasis"><em>doubledouble</em></span> 106-bit for
+      its built-in <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      type.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        The precision of all <code class="computeroutput"><span class="identifier">doubledouble</span></code>
+        floating-point types is rather odd and values given are only approximate.
+      </p></td></tr>
+</table></div>
+<p>
+      <span class="bold"><strong>New projects should use Boost.Multiprecision.</strong></span>
+    </p>
+<h6>
+<a name="math_toolkit.FAQ.h11"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.ntl_class_rr"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.ntl_class_rr">NTL
+      class RR</a>
+    </h6>
+<p>
+      Arbitrary precision floating point with NTL class RR, default is 150 bit (about
+      50 decimal digits) used here with 300 bit to output 100 decimal digits, enough
+      for many practical non-'number-theoretic' C++ applications.
+    </p>
+<p>
+      NTL A Library for doing Number Theory
+      is <span class="bold"><strong>not licenced for commercial use</strong></span>.
+    </p>
+<p>
+      This class is used in Boost.Math and is an option when using big_number projects
+      to calculate new math constants.
+    </p>
+<p>
+      <span class="bold"><strong>New projects should use Boost.Multiprecision.</strong></span>
+    </p>
+<h6>
+<a name="math_toolkit.FAQ.h12"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.gmp_and_mpfr"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.gmp_and_mpfr">GMP
+      and MPFR</a>
+    </h6>
+<p>
+      GMP and MPFR
+      have also been used to compute constants, but are licensed under the Lesser GPL license and
+      are <span class="bold"><strong>not licensed for commercial use</strong></span>.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h13"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.what_happened_to_a_previous_coll"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.what_happened_to_a_previous_coll">What
+      happened to a previous collection of constants proposed for Boost?</a>
+    </h5>
+<p>
+      A review concluded that the way in which the constants were presented did not
+      meet many peoples needs. None of the methods proposed met many users' essential
+      requirement to allow writing simply <code class="computeroutput"><span class="identifier">pi</span></code>
+      rather than <code class="computeroutput"><span class="identifier">pi</span><span class="special">()</span></code>.
+      Many science and engineering equations look difficult to read when because
+      function call brackets can be confused with the many other brackets often needed.
+      All the methods then proposed of avoiding the brackets failed to meet all needs,
+      often on grounds of complexity and lack of applicability to various realistic
+      scenarios.
+    </p>
+<p>
+      So the simple namespace method, proposed on its own, but rejected at the first
+      review, has been added to allow users to have convenient access to float, double
+      and long double values, but combined with template struct and functions to
+      allow simultaneous use with other non-built-in floating-point types.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h14"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.why_do_the_constants_internally_"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.why_do_the_constants_internally_">Why
+      do the constants (internally) have a struct rather than a simple function?</a>
+    </h5>
+<p>
+      A function mechanism was provided by in previous versions of Boost.Math.
+    </p>
+<p>
+      The new mechanism is to permit partial specialization. See Custom Specializing
+      a constant above. It should also allow use with other packages like ttmath Bignum C++ library.
+    </p>
+<h5>
+<a name="math_toolkit.FAQ.h15"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.where_can_i_find_other_high_prec"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.where_can_i_find_other_high_prec">Where
+      can I find other high precision constants?</a>
+    </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          Constants with very high precision and good accuracy (>40 decimal digits)
+          from Simon Plouffe's web based collection http://pi.lacim.uqam.ca/eng/.
+        </li>
+<li class="listitem">
+          <a href="https://oeis.org/" target="_top">The On-Line Encyclopedia of Integer Sequences
+          (OEIS)</a>
+        </li>
+<li class="listitem">
+          Checks using printed text optically scanned values and converted from:
+          D. E. Knuth, Art of Computer Programming, Appendix A, Table 1, Vol 1, ISBN
+          0 201 89683 4 (1997)
+        </li>
+<li class="listitem">
+          M. Abrahamovitz & I. E. Stegun, National Bureau of Standards, Handbook
+          of Mathematical Functions, a reference source for formulae now superceded
+          by
+        </li>
+<li class="listitem">
+          Frank W. Olver, Daniel W. Lozier, Ronald F. Boisvert, Charles W. Clark,
+          NIST Handbook of Mathemetical Functions, Cambridge University Press, ISBN
+          978-0-521-14063-8, 2010.
+        </li>
+<li class="listitem">
+          John F Hart, Computer Approximations, Kreiger (1978) ISBN 0 88275 642 7.
+        </li>
+<li class="listitem">
+          Some values from Cephes Mathematical Library, Stephen L. Moshier and CALC100
+          100 decimal digit Complex Variable Calculator Program, a DOS utility.
+        </li>
+<li class="listitem">
+          Xavier Gourdon, Pascal Sebah, 50 decimal digits constants at <a href="http://numbers.computation.free.fr/Constants/constants.html" target="_top">Number,
+          constants and computation</a>.
+        </li>
+</ol></div>
+<h5>
+<a name="math_toolkit.FAQ.h16"></a>
+      <span class="phrase"><a name="math_toolkit.FAQ.where_are_physical_constants"></a></span><a class="link" href="FAQ.html#math_toolkit.FAQ.where_are_physical_constants">Where
+      are Physical Constants?</a>
+    </h5>
+<p>
+      Not here in this Boost.Math collection, because physical constants:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Are measurements, not truely constants.
+        </li>
+<li class="listitem">
+          Are not truly constant and keeping changing as mensuration technology improves.
+        </li>
+<li class="listitem">
+          Have a instrinsic uncertainty.
+        </li>
+<li class="listitem">
+          Mathematical constants are stored and represented at varying precision,
+          but should never be inaccurate.
+        </li>
+</ul></div>
+<p>
+      Some physical constants may be available in Boost.Units.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="new_const.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../inverse_complex.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Facets for Floating-Point Infinities and NaNs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="prev" href="sign_functions.html" title="Sign Manipulation Functions">
+<link rel="next" href="fp_facets/intro.html" title="Introduction">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sign_functions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets/intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.fp_facets"></a><a class="link" href="fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">Facets for Floating-Point Infinities
+    and NaNs</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Examples</span></dt>
+<dt><span class="section">Portability</span></dt>
+<dt><span class="section">Design Rationale</span></dt>
+</dl></div>
+<h5>
+<a name="math_toolkit.fp_facets.h0"></a>
+      <span class="phrase"><a name="math_toolkit.fp_facets.synopsis"></a></span><a class="link" href="fp_facets.html#math_toolkit.fp_facets.synopsis">Synopsis</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span>
+<span class="special">{</span>
+  <span class="comment">// Values for flags. </span>
+  <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">legacy</span><span class="special">;</span>
+  <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">signed_zero</span><span class="special">;</span>
+  <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">trap_infinity</span><span class="special">;</span>
+  <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">trap_nan</span><span class="special">;</span>
+
+  <span class="keyword">template</span><span class="special"><</span>
+      <span class="keyword">class</span> <span class="identifier">CharType</span><span class="special">,</span>
+      <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">></span>
+  <span class="special">></span>
+  <span class="keyword">class</span> <span class="identifier">nonfinite_num_put</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">num_put</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">></span>
+  <span class="special">{</span>
+  <span class="keyword">public</span><span class="special">:</span>
+      <span class="keyword">explicit</span> <span class="identifier">nonfinite_num_put</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+  <span class="special">};</span>
+
+  <span class="keyword">template</span><span class="special"><</span>
+      <span class="keyword">class</span> <span class="identifier">CharType</span><span class="special">,</span>
+      <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">></span>
+  <span class="special">></span>
+  <span class="keyword">class</span> <span class="identifier">nonfinite_num_get</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">></span>
+  <span class="special">{</span>
+  <span class="keyword">public</span><span class="special">:</span>
+      <span class="keyword">explicit</span> <span class="identifier">nonfinite_num_get</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>  <span class="comment">// legacy, sign_zero ...</span>
+  <span class="special">};</span>
+<span class="special">}}</span> <span class="comment">// namespace boost namespace math</span>
+</pre>
+<p>
+      To use these facets
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">\</span><span class="identifier">math</span><span class="special">\</span><span class="identifier">special_functions</span><span class="special">\</span><span class="identifier">nonfinite_num_facets</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sign_functions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets/intro.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/examples.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/examples.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,246 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Examples</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="prev" href="reference.html" title="Reference">
+<link rel="next" href="portability.html" title="Portability">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="portability.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets_examples">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.fp_facets.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
+</h3></div></div></div>
+<h6>
+<a name="math_toolkit.fp_facets.examples.h0"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.examples.simple_example_with_std_stringst"></a></span><a class="link" href="examples.html#math_toolkit.fp_facets.examples.simple_example_with_std_stringst">Simple
+        example with std::stringstreams</a>
+      </h6>
+<pre class="programlisting"><span class="identifier">locale</span> <span class="identifier">old_locale</span><span class="special">;</span>
+<span class="identifier">locale</span> <span class="identifier">tmp_locale</span><span class="special">(</span><span class="identifier">old_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+<span class="identifier">locale</span> <span class="identifier">new_locale</span><span class="special">(</span><span class="identifier">tmp_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+</pre>
+<pre class="programlisting"><span class="identifier">stringstream</span> <span class="identifier">ss</span><span class="special">;</span>
+<span class="identifier">ss</span><span class="special">.</span><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">new_locale</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">inf</span> <span class="special">=</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">ss</span> <span class="special"><<</span> <span class="identifier">inf</span><span class="special">;</span> <span class="comment">// Write out.</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special">==</span> <span class="string">"inf"</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="identifier">ss</span> <span class="special">>></span> <span class="identifier">r</span><span class="special">;</span> <span class="comment">// Read back in.</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">inf</span> <span class="special">==</span> <span class="identifier">r</span><span class="special">);</span> <span class="comment">// Confirms that the double values really are identical.</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity output was "</span> <span class="special"><<</span> <span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity input was "</span> <span class="special"><<</span> <span class="identifier">r</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// But the string representation of r displayed will be the native type</span>
+<span class="comment">// because, when it was constructed, cout had NOT been imbued</span>
+<span class="comment">// with the new locale containing the nonfinite_numput facet.</span>
+<span class="comment">// So the cout output will be "1.#INF on MS platforms</span>
+<span class="comment">// and may be "inf" or other string representation on other platforms.</span>
+</pre>
+<h6>
+<a name="math_toolkit.fp_facets.examples.h1"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.examples.use_with_lexical_cast"></a></span><a class="link" href="examples.html#math_toolkit.fp_facets.examples.use_with_lexical_cast">Use with
+        lexical_cast</a>
+      </h6>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          From Boost 1.48, lexical_cast no longer uses stringstreams internally,
+          and is now able to handle infinities and NaNs natively on most platforms.
+        </p></td></tr>
+</table></div>
+<p>
+        Without using a new locale that contains the nonfinite facets, previous versions
+        of <code class="computeroutput"><span class="identifier">lexical_cast</span></code> using stringstream
+        were not portable (and often failed) if nonfinite values are found.
+      </p>
+<pre class="programlisting"><span class="identifier">locale</span> <span class="identifier">old_locale</span><span class="special">;</span>
+<span class="identifier">locale</span> <span class="identifier">tmp_locale</span><span class="special">(</span><span class="identifier">old_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+<span class="identifier">locale</span> <span class="identifier">new_locale</span><span class="special">(</span><span class="identifier">tmp_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+</pre>
+<p>
+        Although other examples imbue individual streams with the new locale, for
+        the streams constructed inside lexical_cast, it was necesary to assign to
+        a global locale.
+      </p>
+<pre class="programlisting"><span class="identifier">locale</span><span class="special">::</span><span class="identifier">global</span><span class="special">(</span><span class="identifier">new_locale</span><span class="special">);</span>
+</pre>
+<p>
+        <code class="computeroutput"><span class="identifier">lexical_cast</span></code> then works as
+        expected, even with infinity and NaNs.
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="string">"inf"</span><span class="special">);</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">x</span> <span class="special">==</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">:</span><span class="identifier">limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">());</span>
+
+<span class="identifier">string</span> <span class="identifier">s</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">());</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">s</span> <span class="special">==</span> <span class="string">"inf"</span><span class="special">);</span>
+</pre>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          If you use stringstream inside your functions, you may still need to use
+          a global locale to handle nonfinites correctly. Or you need to imbue your
+          stringstream with suitable get and put facets.
+        </p></td></tr>
+</table></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          You should be aware that the C++ specification does not explicitly require
+          that input from decimal digits strings converts with rounding to the nearest
+          representable floating-point binary value. (In contrast, decimal digits
+          read by the compiler, for example by an assignment like <code class="computeroutput"><span class="keyword">double</span>
+          <span class="identifier">d</span> <span class="special">=</span>
+          <span class="number">1.234567890123456789</span></code>, are guaranteed
+          to assign the nearest representable value to double d). This implies that,
+          no matter how many decimal digits you provide, there is a potential uncertainty
+          of 1 least significant bit in the resulting binary value.
+        </p></td></tr>
+</table></div>
+<p>
+        See <a href="http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding" target="_top">for
+        more information on <span class="emphasis"><em>nearest representable</em></span> and <span class="emphasis"><em>rounding</em></span></a>.
+      </p>
+<p>
+        Most iostream libraries do in fact achieve the desirable <span class="emphasis"><em>nearest
+        representable floating-point binary value</em></span> for all values of input.
+        However one popular STL library does not quite achieve this for 64-bit doubles.
+        See <a href="http://connect.microsoft.com/VisualStudio/feedback/details/98770/decimal-digit-string-input-to-double-may-be-1-bit-wrong" target="_top">Decimal
+        digit string input to double may be 1 bit wrong</a> for the bizarre full
+        details.
+      </p>
+<p>
+        If you are expecting to 'round-trip' <code class="computeroutput"><span class="identifier">lexical_cast</span></code>
+        or <code class="computeroutput"><span class="identifier">serialization</span></code>, for example
+        archiving and loading, and want to be <span class="bold"><strong>absolutely certain
+        that you will always get an exactly identical double value binary pattern</strong></span>,
+        you should use the suggested 'workaround' below that is believed to work
+        on all platforms.
+      </p>
+<p>
+        You should output using all potentially significant decimal digits, by setting
+        stream precision to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">max_digits10</span></code>, (or for the appropriate floating-point
+        type, if not double) and crucially, <span class="bold"><strong>require <code class="computeroutput"><span class="identifier">scientific</span></code> format</strong></span>, not <code class="computeroutput"><span class="identifier">fixed</span></code> or automatic (default), for example:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">output_value</span> <span class="special">=</span> <span class="identifier">any</span> <span class="identifier">value</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span> <span class="identifier">s</span><span class="special">;</span>
+<span class="identifier">s</span> <span class="special"><<</span> <span class="identifier">setprecison</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">max_digits10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">output_value</span><span class="special">;</span>
+<span class="identifier">s</span> <span class="special">>></span> <span class="identifier">input_value</span><span class="special">;</span>
+</pre>
+<h5>
+<a name="math_toolkit.fp_facets.examples.h2"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.examples.use_with_serialization_archives"></a></span><a class="link" href="examples.html#math_toolkit.fp_facets.examples.use_with_serialization_archives">Use
+        with serialization archives</a>
+      </h5>
+<p>
+        It is vital that the same locale is used when an archive is saved and when
+        it is loaded. Otherwise, loading the archive may fail. By default, archives
+        are saved and loaded with a classic C locale with a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">codecvt_null</span></code>
+        facet added. Normally you do not have to worry about that.
+      </p>
+<p>
+        The constructors for the archive classes, as a side-effect, imbue the stream
+        with such a locale. However, if you want to use the facets <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code> and <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>
+        with archives, then you have to manage the locale manually. That is done
+        by calling the archive constructor with the flag <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">no_codecvt</span></code>,
+        thereby ensuring that the archive constructor will <span class="bold"><strong>not
+        imbue the stream with a new locale</strong></span>.
+      </p>
+<p>
+        The following code shows how to use <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        with a <code class="computeroutput"><span class="identifier">text_oarchive</span></code>.
+      </p>
+<pre class="programlisting"><span class="identifier">locale</span> <span class="identifier">default_locale</span><span class="special">(</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">classic</span><span class="special">(),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">codecvt_null</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+<span class="identifier">locale</span> <span class="identifier">my_locale</span><span class="special">(</span><span class="identifier">default_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+
+<span class="identifier">ofstream</span> <span class="identifier">ofs</span><span class="special">(</span><span class="string">"test.txt"</span><span class="special">);</span>
+<span class="identifier">ofs</span><span class="special">.</span><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">my_locale</span><span class="special">);</span>
+
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">archive</span><span class="special">::</span><span class="identifier">text_oarchive</span> <span class="identifier">oa</span><span class="special">(</span><span class="identifier">ofs</span><span class="special">,</span> <span class="identifier">no_codecvt</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">oa</span> <span class="special">&</span> <span class="identifier">x</span><span class="special">;</span>
+</pre>
+<p>
+        The same method works with <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>
+        and <code class="computeroutput"><span class="identifier">text_iarchive</span></code>.
+      </p>
+<p>
+        If you use the <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        with <code class="computeroutput"><span class="identifier">trap_infinity</span></code> and/or
+        <code class="computeroutput"><span class="identifier">trap_nan</span></code> flag with a serialization
+        archive, then you must set the exception mask of the stream. Serialization
+        archives do not check the stream state.
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.examples.h3"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.examples.other_examples"></a></span><a class="link" href="examples.html#math_toolkit.fp_facets.examples.other_examples">Other
+        examples</a>
+      </h6>
+<p>
+        nonfinite_facet_simple.cpp
+        give some more simple demonstrations of the difference between using classic
+        C locale and constructing a C99 infinty and NaN compliant locale for input
+        and output.
+      </p>
+<p>
+        See nonfinite_facet_sstream.cpp
+        for this example of use with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">stringstream</span></code>s.
+      </p>
+<p>
+        For an example of how to enforce the MSVC 'legacy' "1.#INF" and
+        "1.#QNAN" representations of infinity and NaNs, for input and output,
+        see nonfinite_legacy.cpp.
+      </p>
+<p>
+        Treatment of signaling NaN is demonstrated at ../../../example/nonfinite_signaling_NaN.cpp
+      </p>
+<p>
+        Example ../../../example/nonfinite_loopback_ok.cpp
+        shows loopback works OK.
+      </p>
+<p>
+        Example ../../../example/nonfinite_num_facet.cpp
+        shows output and re-input of various finite and nonfinite values.
+      </p>
+<p>
+        A simple example of trapping nonfinite output is at nonfinite_num_facet_trap.cpp.
+      </p>
+<p>
+        A very basic example of using Boost.Archive is at ../../../example/nonfinite_serialization_archives.cpp.
+      </p>
+<p>
+        A full demonstration of serialization by Francois Mauger is at ../../../example/nonfinite_num_facet_serialization.cpp
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="portability.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/intro.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,370 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Introduction</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="prev" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../fp_facets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets_intro">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.fp_facets.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
+</h3></div></div></div>
+<h6>
+<a name="math_toolkit.fp_facets.intro.h0"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.intro.the_problem"></a></span><a class="link" href="intro.html#math_toolkit.fp_facets.intro.the_problem">The
+        Problem</a>
+      </h6>
+<p>
+        The C++98 standard does not specify how <span class="emphasis"><em>infinity</em></span> and
+        <span class="emphasis"><em>NaN</em></span> are represented in text streams. As a result, different
+        platforms use different string representations. This can cause undefined
+        behavior when text files are moved between different platforms. Some platforms
+        cannot even input parse their own output! So 'route-tripping' or loopback
+        of output to input is not possible. For instance, the following test fails
+        with MSVC:
+      </p>
+<pre class="programlisting"><span class="identifier">stringstream</span> <span class="identifier">ss</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">inf</span> <span class="special">=</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="keyword">double</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="identifier">ss</span> <span class="special"><<</span> <span class="identifier">inf</span><span class="special">;</span> <span class="comment">// Write out.</span>
+<span class="identifier">ss</span> <span class="special">>></span> <span class="identifier">r</span><span class="special">;</span> <span class="comment">// Read back in.</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity output was "</span> <span class="special"><<</span> <span class="identifier">inf</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#INF</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity input was "</span> <span class="special"><<</span> <span class="identifier">r</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1</span>
+
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">inf</span> <span class="special">==</span> <span class="identifier">y</span><span class="special">);</span> <span class="comment">// Fails!</span>
+</pre>
+<h6>
+<a name="math_toolkit.fp_facets.intro.h1"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.intro.the_solution"></a></span><a class="link" href="intro.html#math_toolkit.fp_facets.intro.the_solution">The
+        Solution</a>
+      </h6>
+<p>
+        The facets <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        and <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code> format
+        and parse all floating-point numbers, including <code class="computeroutput"><span class="identifier">infinity</span></code>
+        and <code class="computeroutput"><span class="identifier">NaN</span></code>, in a consistent
+        and portable manner.
+      </p>
+<p>
+        The following test succeeds with MSVC.
+      </p>
+<pre class="programlisting"><span class="identifier">locale</span> <span class="identifier">old_locale</span><span class="special">;</span>
+<span class="identifier">locale</span> <span class="identifier">tmp_locale</span><span class="special">(</span><span class="identifier">old_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+<span class="identifier">locale</span> <span class="identifier">new_locale</span><span class="special">(</span><span class="identifier">tmp_locale</span><span class="special">,</span> <span class="keyword">new</span> <span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="keyword">char</span><span class="special">>);</span>
+</pre>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          To add two facets, <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+          and <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>,
+          you may have to add one at a time, using a temporary locale.
+        </p>
+<p>
+          Or you can create a new locale in one step
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="identifier">new_locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span class=
"special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="keyword">char</span><span class="special">>));</span></code>
+        </p>
+<p>
+          and, for example, use it to imbue an input and output stringstream.
+        </p>
+</td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          To just change an input or output stream, you can concisely write <code class="computeroutput"><span class="identifier">cout</span><span class="special">.</span><span class="identifier">imbue</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="keyword">char</span><span class="special">>));</span></code> or <code class="computeroutput"><span class="identifier">cin</span><span class="special">.</span><span class="identifier">imbue</span> <span class="special">(</span><span class="identif
ier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(),</span> <span class="keyword">new</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="keyword">char</span><span class="special">>));</span></code>
+        </p></td></tr>
+</table></div>
+<pre class="programlisting"><span class="identifier">stringstream</span> <span class="identifier">ss</span><span class="special">;</span>
+<span class="identifier">ss</span><span class="special">.</span><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">new_locale</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">inf</span> <span class="special">=</span> <span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">();</span>
+<span class="identifier">ss</span> <span class="special"><<</span> <span class="identifier">inf</span><span class="special">;</span> <span class="comment">// Write out.</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special">==</span> <span class="string">"inf"</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="identifier">ss</span> <span class="special">>></span> <span class="identifier">r</span><span class="special">;</span> <span class="comment">// Read back in.</span>
+<span class="identifier">assert</span><span class="special">(</span><span class="identifier">inf</span> <span class="special">==</span> <span class="identifier">r</span><span class="special">);</span> <span class="comment">// Confirms that the double values really are identical.</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity output was "</span> <span class="special"><<</span> <span class="identifier">ss</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"infinity input was "</span> <span class="special"><<</span> <span class="identifier">r</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// But the string representation of r displayed will be the native type</span>
+<span class="comment">// because, when it was constructed, cout had NOT been imbued</span>
+<span class="comment">// with the new locale containing the nonfinite_numput facet.</span>
+<span class="comment">// So the cout output will be "1.#INF on MS platforms</span>
+<span class="comment">// and may be "inf" or other string representation on other platforms.</span>
+</pre>
+<h5>
+<a name="math_toolkit.fp_facets.intro.h2"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.intro.c_0x_standard_for_output_of_infi"></a></span><a class="link" href="intro.html#math_toolkit.fp_facets.intro.c_0x_standard_for_output_of_infi">C++0X
+        standard for output of infinity and NaN</a>
+      </h5>
+<p>
+        <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf" target="_top">C++0X
+        (final) draft standard</a> does not explicitly specify the representation
+        (and input) of nonfinite values, leaving it implementation-defined. So without
+        some specific action, input and output of nonfinite values is not portable.
+      </p>
+<h5>
+<a name="math_toolkit.fp_facets.intro.h3"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.intro.c99_standard_for_output_of_infin"></a></span><a class="link" href="intro.html#math_toolkit.fp_facets.intro.c99_standard_for_output_of_infin">C99
+        standard for output of infinity and NaN</a>
+      </h5>
+<p>
+        The <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf" target="_top">C99
+        standard</a> <span class="bold"><strong>does</strong></span> specify how infinity
+        and NaN are formatted by printf and similar output functions, and parsed
+        by scanf and similar input functions.
+      </p>
+<p>
+        The following string representations are used:
+      </p>
+<div class="table">
+<a name="math_toolkit.fp_facets.intro.c99_representation_of_infinity_a"></a><p class="title"><b>Table 4.1. C99 Representation of Infinity and NaN</b></p>
+<div class="table-contents"><table class="table" summary="C99 Representation of Infinity and NaN">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  number
+                </p>
+              </th>
+<th>
+                <p>
+                  string
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Positive infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  "inf" or "infinity"
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Positive NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  "nan" or "nan(...)"
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  "-inf" or "-infinity"
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  "-nan" or "-nan(...)"
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        So following C99 provides a sensible 'standard' way of handling input and
+        output of nonfinites in C++, and this implementation follows most of these
+        formats.
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.intro.h4"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.intro.signaling_nans"></a></span><a class="link" href="intro.html#math_toolkit.fp_facets.intro.signaling_nans">Signaling
+        NaNs</a>
+      </h6>
+<p>
+        A particular type of NaN is the signaling NaN. The usual mechanism of signaling
+        is by raising a floating-point exception. Signaling NaNs are defined by
+        <a href="http://en.wikipedia.org/wiki/IEEE_floating-point_standard" target="_top">IEEE
+        754-2008</a>.
+      </p>
+<p>
+        Floating-point values with layout <span class="emphasis"><em>s</em></span>111 1111 1<span class="emphasis"><em>a</em></span>xx
+        xxxx xxxx xxxx xxxx xxxx where <span class="emphasis"><em>s</em></span> is the sign, <span class="emphasis"><em>x</em></span>
+        is the payload, and bit <span class="emphasis"><em>a</em></span> determines the type of NaN.
+      </p>
+<p>
+        If bit <span class="emphasis"><em>a</em></span> = 1, it is a quiet NaN.
+      </p>
+<p>
+        If bit <span class="emphasis"><em>a</em></span> is zero and the payload <span class="emphasis"><em>x</em></span>
+        is nonzero, then it is a signaling NaN.
+      </p>
+<p>
+        Although there has been theoretical interest in the ability of a signaling
+        NaN to raise an exception, for example to prevent use of an uninitialised
+        variable, in practice there appears to be no useful application of signaling
+        NaNs for most current processors. <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf" target="_top">C++0X
+        18.3.2.2</a> still specifies a (implementation-defined) representation
+        for signaling NaN, and <code class="computeroutput"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> <span class="identifier">has_signaling_NaN</span></code> a method of checking
+        if a floating-point type has a representation for signaling NaN.
+      </p>
+<p>
+        But in practice, most platforms treat signaling NaNs in the same as quiet
+        NaNs. So, for example, they are represented by "nan" on output
+        in C99
+        format, and output as <code class="computeroutput"><span class="number">1.</span><span class="special">#</span><span class="identifier">QNAN</span></code> by Microsoft compilers.
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The C99 standard does not distinguish between the quiet NaN and signaling
+          NaN values. A quiet NaN propagates through almost every arithmetic operation
+          without raising a floating-point exception; a signaling NaN generally raises
+          a floating-point exception when occurring as an arithmetic operand.
+        </p>
+<p>
+          C99 specification does not define the behavior of signaling NaNs. NaNs
+          created by IEC 60559 operations are always quiet. Therefore this implementation
+          follows C99, and treats the signaling NaN bit as just a part of the NaN
+          payload field. So this implementation does not distinguish between the
+          two classes of NaN.
+        </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          An implementation may give zero and non-numeric values (such as infinities
+          and NaNs) a sign or may leave them unsigned. Wherever such values are unsigned,
+          any requirement in the C99 Standard to retrieve the sign shall produce
+          an unspecified sign, and any requirement to set the sign shall be ignored.
+        </p>
+<p>
+          This might apply to user-defined types, but in practice built-in floating-point
+          types <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code> have well-behaved signs.
+        </p>
+</td></tr>
+</table></div>
+<p>
+        The numbers can be of type <code class="computeroutput"><span class="keyword">float</span></code>,
+        <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code>. An optional + sign can be
+        used with positive numbers (controlled by ios manipulator <code class="computeroutput"><span class="identifier">showpos</span></code>).
+        The function <code class="computeroutput"><span class="identifier">printf</span></code> and similar
+        C++ functions use standard formatting flags to put all lower or all upper
+        case (controlled by <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios</span></code> manipulator <code class="computeroutput"><span class="identifier">uppercase</span></code>
+        and <code class="computeroutput"><span class="identifier">lowercase</span></code>).
+      </p>
+<p>
+        The function <code class="computeroutput"><span class="identifier">scanf</span></code> and similar
+        input functions are case-insensitive.
+      </p>
+<p>
+        The dots in <code class="computeroutput"><span class="identifier">nan</span><span class="special">(...)</span></code>
+        stand for an arbitrary string. The meaning of that string is implementation
+        dependent. It can be used to convey extra information about the NaN, from
+        the 'payload'. A particular value of the payload might be used to indicate
+        a <span class="emphasis"><em>missing value</em></span>, for example.
+      </p>
+<p>
+        This library uses the string representations specified by the C99 standard.
+      </p>
+<p>
+        An example of an implementation that optionally includes the NaN payload
+        information is at <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.bpxbd00/fprints.htm" target="_top">AIX
+        NaN fprintf</a>. That implementation specifies for Binary Floating Point
+        NANs:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            A NaN ordinal sequence is a left-parenthesis character '(', followed
+            by a digit sequence representing an integer n, where 1 <= n <=
+            INT_MAX-1, followed by a right-parenthesis character ')'.
+          </li>
+<li class="listitem">
+            The integer value, n, is determined by the fraction bits of the NaN argument
+            value as follows:
+          </li>
+<li class="listitem">
+            For a signalling NaN value, NaN fraction bits are reversed (left to right)
+            to produce bits (right to left) of an even integer value, 2*n. Then formatted
+            output functions produce a (signalling) NaN ordinal sequence corresponding
+            to the integer value n.
+          </li>
+<li class="listitem">
+            For a quiet NaN value, NaN fraction bits are reversed (left to right)
+            to produce bits (right to left) of an odd integer value, 2*n-1. Then
+            formatted output functions produce a (quiet) NaN ordinal sequence corresponding
+            to the integer value n.
+          </li>
+</ul></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          This implementation does not (yet) provide output of, or access to, the
+          NaN payload.
+        </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../fp_facets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/portability.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/portability.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Portability</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="prev" href="examples.html" title="Examples">
+<link rel="next" href="rationale.html" title="Design Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets_portability">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.fp_facets.portability"></a><a class="link" href="portability.html" title="Portability">Portability</a>
+</h3></div></div></div>
+<p>
+        This library uses the floating-point number classification and sign-bit from
+        Boost.Math library, and should work on all platforms where that library works.
+        See the portability information for that library.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="examples.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/rationale.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Design Rationale</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="prev" href="portability.html" title="Portability">
+<link rel="next" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="portability.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../next_float.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets_rationale">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.fp_facets.rationale"></a><a class="link" href="rationale.html" title="Design Rationale">Design Rationale</a>
+</h3></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            The flags are implemented as a const data member of the facet. Facets
+            are reference counted, and locales can share facets. Therefore changing
+            the flags of a facet would have effects that are hard to predict. An
+            alternative design would be to implement the flags using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">xalloc</span></code> and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">iword</span></code>.
+            Then one could safely modify the flags, and one could define manipulators
+            that do so. However, for that to work with dynamically linked libraries,
+            a <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
+            file would have to be added to the library. It was judged be more desirable
+            to have a headers only library, than to have mutable flags and manipulators.
+          </li>
+<li class="listitem">
+            The facet <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+            throws an exception when the <code class="computeroutput"><span class="identifier">trap_infinity</span></code>
+            or <code class="computeroutput"><span class="identifier">trap_nan</span></code> flag is set
+            and an attempt is made to format infinity or NaN. It would be better
+            if the facet set the fail bit of the stream. However, facets derived
+            from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_put</span></code> do not have access to the stream
+            state.
+          </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="portability.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../next_float.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/reference.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fp_facets/reference.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,481 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Reference</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+<link rel="prev" href="intro.html" title="Introduction">
+<link rel="next" href="examples.html" title="Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="intro.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fp_facets_reference">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.fp_facets.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h3></div></div></div>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h0"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.the_facet_nonfinite_num_put"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.the_facet_nonfinite_num_put">The
+        Facet <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code></a>
+      </h6>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
+  <span class="keyword">class</span> <span class="identifier">CharType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">></span>
+        <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">nonfinite_num_put</span><span class="special">;</span>
+</pre>
+<p>
+        The <code class="computeroutput"><span class="keyword">class</span> <span class="identifier">nonfinite_num_put</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">></span></code> is derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_put</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">OutputIterator</span><span class="special">></span></code>. Thus it is a facet that formats numbers.
+        The first template argument is the character type of the formatted strings,
+        usually <code class="computeroutput"><span class="keyword">char</span></code> or <code class="computeroutput"><span class="keyword">wchar_t</span></code>. The second template argument is the
+        type of iterator used to write the strings. It is required to be an output
+        iterator. Usually the default <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostreambuf_iterator</span></code>
+        is used. The public interface of the class consists of a single constructor
+        only:
+      </p>
+<pre class="programlisting"><span class="identifier">nonfinite_num_put</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+</pre>
+<p>
+        The flags argument (effectively optional because a default of <code class="computeroutput"> <span class="identifier">no_flags</span></code> is provided) is discussed below.
+        The class template <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        is defined in the header <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">nonfinite_num_facets</span><span class="special">.</span><span class="identifier">hpp</span></code> and lives in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code>.
+      </p>
+<p>
+        Unlike the C++ Standard facet <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_put</span></code>,
+        the facet <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        formats <code class="computeroutput"><span class="identifier">infinity</span></code> and <code class="computeroutput"><span class="identifier">NaN</span></code> in a consistent and portable manner.
+        It uses the following string representations:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Number
+                </p>
+              </th>
+<th>
+                <p>
+                  String
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Positive infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  inf
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Positive NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  nan
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  -inf
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  -nan
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+        The numbers can be of type <code class="computeroutput"><span class="keyword">float</span></code>,
+        <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code>. The strings can be in all
+        lower case or all upper case. An optional + sign can be used with positive
+        numbers. This can be controlled with the <code class="computeroutput"><span class="identifier">uppercase</span></code>,
+        <code class="computeroutput"><span class="identifier">lowercase</span></code>, <code class="computeroutput"><span class="identifier">showpos</span></code> and <code class="computeroutput"><span class="identifier">noshowpos</span></code>
+        manipulators. Formatting of integers, boolean values and finite floating-point
+        numbers is simply delegated to the normal <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_put</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h1"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.facet_nonfinite_num_get"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.facet_nonfinite_num_get">Facet
+        <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code></a>
+      </h6>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">CharType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">></span> <span class="special">></span> <span class="keyword">class</span> <span class="identifier">nonfinite_num_get</span><span class="special">;</span>
+</pre>
+<p>
+        The class <code class="computeroutput"><span class="identifier">nonfinite_num_get</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">></span></code> is derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span><span class="special"><</span><span class="identifier">CharType</span><span class="special">,</span> <span class="identifier">IntputIterator</span><span class="special">></span></code>. Thus it is a facet that parses strings
+        that represent numbers. The first template argument is the character type
+        of the strings, usually <code class="computeroutput"><span class="keyword">char</span></code>
+        or <code class="computeroutput"><span class="keyword">wchar_t</span></code>. The second template
+        argument is the type of iterator used to read the strings. It is required
+        to be an input iterator. Usually the default is used. The public interface
+        of the class consists of a single constructor only:
+      </p>
+<pre class="programlisting"><span class="identifier">nonfinite_num_get</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+</pre>
+<p>
+        The flags argument is discussed below. The <code class="computeroutput"><span class="keyword">class</span>
+        <span class="keyword">template</span> <span class="identifier">nonfinite_num_get</span></code>
+        is defined in the header <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">nonfinite_num_facets</span><span class="special">.</span><span class="identifier">hpp</span></code> and lives in the <code class="computeroutput"><span class="keyword">namespace</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code>.
+      </p>
+<p>
+        Unlike the facet <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span></code>, the facet <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>
+        parses strings that represent <code class="computeroutput"><span class="identifier">infinity</span></code>
+        and <code class="computeroutput"><span class="identifier">NaN</span></code> in a consistent and
+        portable manner. It recognizes precisely the string representations specified
+        by the C99 standard:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Number
+                </p>
+              </th>
+<th>
+                <p>
+                  String
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Positive infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  inf, infinity
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Positive NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  nan, nan(...)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  -inf, -infinity
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  -nan, -nan(...)
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+        The numbers can be of type <code class="computeroutput"><span class="keyword">float</span></code>,
+        <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code>. The facet is case-insensitive.
+        An optional + sign can be used with positive numbers. The dots in nan(...)
+        stand for an arbitrary string usually containing the <span class="emphasis"><em>NaN payload</em></span>.
+        Parsing of strings that represent integers, boolean values and finite floating-point
+        numbers is delegated to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span></code>.
+      </p>
+<p>
+        When the facet parses a string that represents <code class="computeroutput"><span class="identifier">infinity</span></code>
+        on a platform that lacks infinity, then the fail bit of the stream is set.
+      </p>
+<p>
+        When the facet parses a string that represents <code class="computeroutput"><span class="identifier">NaN</span></code>
+        on a platform that lacks NaN, then the fail bit of the stream is set.
+      </p>
+<h5>
+<a name="math_toolkit.fp_facets.reference.h2"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.flags"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.flags">Flags</a>
+      </h5>
+<p>
+        The constructors for <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>
+        and <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code> take
+        an optional bit flags argument. There are four different bit flags:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            legacy
+          </li>
+<li class="listitem">
+            signed_zero
+          </li>
+<li class="listitem">
+            trap_infinity
+          </li>
+<li class="listitem">
+            trap_nan
+          </li>
+</ul></div>
+<p>
+        The flags can be combined with the OR <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code>.
+      </p>
+<p>
+        The flags are defined in the header <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">nonfinite_num_facets</span><span class="special">.</span><span class="identifier">hpp</span></code> and live in the <code class="computeroutput"><span class="keyword">namespace</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h3"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.legacy"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.legacy">legacy</a>
+      </h6>
+<p>
+        The legacy flag has no effect with the output facet <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>.
+      </p>
+<p>
+        If the legacy flag is used with the <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>
+        input facet, then the facet will recognize all the following string representations
+        of <code class="computeroutput"><span class="identifier">infinity</span></code> and <code class="computeroutput"><span class="identifier">NaN</span></code>:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Number
+                </p>
+              </th>
+<th>
+                <p>
+                  String
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Positive infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  inf, infinity, one#inf
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Positive NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  nan, nan(...), nanq, nans, qnan, snan, one#ind, one#qnan, one#snan
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative infinity
+                </p>
+              </td>
+<td>
+                <p>
+                  -inf, -infinity, -one#inf
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Negative NaN
+                </p>
+              </td>
+<td>
+                <p>
+                  -nan, -nan(...), -nanq, -nans, -qnan, -snan, -one#ind, - one#qnan,
+                  -one#snan
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            The numbers can be of type <code class="computeroutput"><span class="keyword">float</span></code>,
+            <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+          </li>
+<li class="listitem">
+            The facet is case-insensitive.
+          </li>
+<li class="listitem">
+            An optional <code class="computeroutput"><span class="special">+</span></code> sign can be
+            used with the positive values.
+          </li>
+<li class="listitem">
+            The dots in <code class="computeroutput"><span class="identifier">nan</span><span class="special">(...)</span></code>
+            stand for an arbitrary string.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">one</span></code> stands for any string
+            that <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span></code> parses as the number <code class="computeroutput"><span class="number">1</span></code>, typically "1.#INF", "1.QNAN"
+            but also "000001.#INF"...
+          </li>
+</ul></div>
+<p>
+        The list includes a number of non-standard string representations of infinity
+        and NaN that are used by various existing implementations of the C++ standard
+        library, and also string representations used by other programming languages.
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h4"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.signed_zero"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.signed_zero">signed_zero</a>
+      </h6>
+<p>
+        If the <code class="computeroutput"><span class="identifier">signed_zero</span></code> flag is
+        used with <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>,
+        then the facet will always distinguish between positive and negative zero.
+        It will format positive zero as "0" or "+0" and negative
+        zero as "-0". The string representation of positive zero can be
+        controlled with the <code class="computeroutput"><span class="identifier">showpos</span></code>
+        and <code class="computeroutput"><span class="identifier">noshowpos</span></code> manipulators.
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">signed_zero</span> <span class="identifier">flag</span></code>
+        has no effect with the input facet <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>.
+        The input facet <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>
+        always parses "0" and "+0" as positive zero and "-0"
+        as negative zero, as do most implementations of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">num_get</span></code>.
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          If the <code class="computeroutput"><span class="identifier">signed_zero</span></code> flag
+          is not set (the default), then a negative zero value will be displayed
+          on output in whatever way the platform normally handles it. For most platforms,
+          this it will format positive zero as "0" or "+0" and
+          negative zero as "-0". But setting the <code class="computeroutput"><span class="identifier">signed_zero</span></code>
+          flag may be more portable.
+        </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          A negative zero value can be portably produced using the changesign function
+          <code class="computeroutput"><span class="special">(</span><span class="identifier">changesign</span><span class="special">)(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">ValType</span><span class="special">>(</span><span class="number">0</span><span class="special">))</span></code>
+          where <code class="computeroutput"><span class="identifier">ValType</span></code> is <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>
+          or <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+          or a User-Defined floating-point type (UDT) provided that this UDT has
+          a sign and that the changesign function is implemented.
+        </p></td></tr>
+</table></div>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h5"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.trap_infinity"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.trap_infinity">trap_infinity</a>
+      </h6>
+<p>
+        If the <code class="computeroutput"><span class="identifier">trap_infinity</span></code> flag
+        is used with <code class="computeroutput"><span class="identifier">nonfinite_num_put</span></code>,
+        then the facet will throw an exception of type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">failure</span></code>
+        when an attempt is made to format positive or negative infinity. If the facet
+        is called from a stream insertion operator, then the stream will catch that
+        exception and set either its <code class="computeroutput"><span class="identifier">fail</span>
+        <span class="identifier">bit</span></code> or its <code class="computeroutput"><span class="identifier">bad</span>
+        <span class="identifier">bit</span></code>. Which bit is set is platform
+        dependent.
+      </p>
+<p>
+        If the <code class="computeroutput"><span class="identifier">trap_infinity</span></code> flag
+        is used with <code class="computeroutput"><span class="identifier">nonfinite_num_get</span></code>,
+        then the facet will set the <code class="computeroutput"><span class="identifier">fail</span>
+        <span class="identifier">bit</span></code> of the stream when an attempt
+        is made to parse a string that represents positive or negative infinity.
+      </p>
+<p>
+        (See Design Rationale below for a discussion of this inconsistency.)
+      </p>
+<h6>
+<a name="math_toolkit.fp_facets.reference.h6"></a>
+        <span class="phrase"><a name="math_toolkit.fp_facets.reference.trap_nan"></a></span><a class="link" href="reference.html#math_toolkit.fp_facets.reference.trap_nan">trap_nan</a>
+      </h6>
+<p>
+        Same as <code class="computeroutput"><span class="identifier">trap_infinity</span></code>, but
+        positive and negative NaN are trapped instead.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="intro.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/fpclass.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/fpclass.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,243 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Floating-Point Classification: Infinities and NaNs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="prev" href="rounding/modf.html" title="Integer and Fractional Part Splitting (modf)">
+<link rel="next" href="sign_functions.html" title="Sign Manipulation Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="rounding/modf.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sign_functions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_fpclass">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.fpclass"></a><a class="link" href="fpclass.html" title="Floating-Point Classification: Infinities and NaNs">Floating-Point Classification: Infinities
+    and NaNs</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.fpclass.h0"></a>
+      <span class="phrase"><a name="math_toolkit.fpclass.synopsis"></a></span><a class="link" href="fpclass.html#math_toolkit.fpclass.synopsis">Synopsis</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">FP_ZERO</span>        <span class="comment">/* implementation specific value */</span>
+<span class="preprocessor">#define</span> <span class="identifier">FP_NORMAL</span>      <span class="comment">/* implementation specific value */</span>
+<span class="preprocessor">#define</span> <span class="identifier">FP_INFINITE</span>    <span class="comment">/* implementation specific value */</span>
+<span class="preprocessor">#define</span> <span class="identifier">FP_NAN</span>         <span class="comment">/* implementation specific value */</span>
+<span class="preprocessor">#define</span> <span class="identifier">FP_SUBNORMAL</span>   <span class="comment">/* implementation specific value */</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">fpclassify</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isfinite</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span> <span class="comment">// Neither infinity nor NaN.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isinf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span> <span class="comment">// Infinity (+ or -).</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isnan</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span> <span class="comment">// NaN.</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isnormal</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span> <span class="comment">// isfinite and not denormalised.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">\</span><span class="identifier">math</span><span class="special">\</span><span class="identifier">special_functions</span><span class="special">\</span><span class="identifier">fpclassify</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+      to use these functions.
+    </p>
+<h5>
+<a name="math_toolkit.fpclass.h1"></a>
+      <span class="phrase"><a name="math_toolkit.fpclass.description"></a></span><a class="link" href="fpclass.html#math_toolkit.fpclass.description">Description</a>
+    </h5>
+<p>
+      These functions provide the same functionality as the macros with the same
+      name in C99, indeed if the C99 macros are available, then these functions are
+      implemented in terms of them, otherwise they rely on std::numeric_limits<>
+      to function.
+    </p>
+<p>
+      Note that the definition of these functions <span class="emphasis"><em>does not suppress the
+      definition of these names as macros by math.h</em></span> on those platforms
+      that already provide these as macros. That mean that the following have differing
+      meanings:
+    </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+<span class="comment">// This might call a global macro if defined,</span>
+<span class="comment">// but might not work if the type of z is unsupported </span>
+<span class="comment">// by the std lib macro:</span>
+<span class="identifier">isnan</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// This calls the Boost version</span>
+<span class="comment">// (found via the "using namespace boost::math" declaration)</span>
+<span class="comment">// it works for any type that has numeric_limits support for type z:</span>
+<span class="special">(</span><span class="identifier">isnan</span><span class="special">)(</span><span class="identifier">z</span><span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// As above but with explicit namespace qualification.</span>
+<span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">isnan</span><span class="special">)(</span><span class="identifier">z</span><span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// This will cause a compiler error if isnan is a native macro:</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">isnan</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+<span class="comment">// So always use instead:</span>
+<span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">isnan</span><span class="special">)(</span><span class="identifier">z</span><span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// You can also add a using statement,</span>
+<span class="comment">// globally to a .cpp file, or to a local function in a .hpp file.</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">isnan</span><span class="special">;</span>
+<span class="comment">// so you can write the shorter and less cluttered</span>
+<span class="special">(</span><span class="identifier">isnan</span><span class="special">)(</span><span class="identifier">z</span><span class="special">)</span>
+<span class="comment">// But, as above, if isnan is a native macro, this causes a compiler error,</span>
+<span class="comment">// because the macro always 'gets' the name first, unless enclosed in () brackets.</span>
+</pre>
+<p>
+      Detailed descriptions for each of these functions follows:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">fpclassify</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+<p>
+      Returns an integer value that classifies the value <span class="emphasis"><em>t</em></span>:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                fpclassify value
+              </p>
+            </th>
+<th>
+              <p>
+                class of t.
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                FP_ZERO
+              </p>
+            </td>
+<td>
+              <p>
+                If <span class="emphasis"><em>t</em></span> is zero.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                FP_NORMAL
+              </p>
+            </td>
+<td>
+              <p>
+                If <span class="emphasis"><em>t</em></span> is a non-zero, non-denormalised finite
+                value.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                FP_INFINITE
+              </p>
+            </td>
+<td>
+              <p>
+                If <span class="emphasis"><em>t</em></span> is plus or minus infinity.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                FP_NAN
+              </p>
+            </td>
+<td>
+              <p>
+                If <span class="emphasis"><em>t</em></span> is a NaN.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                FP_SUBNORMAL
+              </p>
+            </td>
+<td>
+              <p>
+                If <span class="emphasis"><em>t</em></span> is a denormalised number.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isfinite</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      Returns true only if <span class="emphasis"><em>z</em></span> is not an infinity or a NaN.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isinf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+<p>
+      Returns true only if <span class="emphasis"><em>z</em></span> is plus or minus infinity.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isnan</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+<p>
+      Returns true only if <span class="emphasis"><em>z</em></span> is a NaN.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">isnormal</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+<p>
+      Returns true only if <span class="emphasis"><em>z</em></span> is a normal number (not zero, infinite,
+      NaN, or denormalised).
+    </p>
+<h6>
+<a name="math_toolkit.fpclass.h2"></a>
+      <span class="phrase"><a name="math_toolkit.fpclass.floating_point_format"></a></span><a class="link" href="fpclass.html#math_toolkit.fpclass.floating_point_format">Floating-point
+      format</a>
+    </h6>
+<p>
+      If you wish to find details of the floating-point format for any particular
+      processor, there is a program
+    </p>
+<p>
+      inspect_fp.cpp
+    </p>
+<p>
+      by Johan Rade which can be used to print out the processor type, endianness,
+      and detailed bit layout of a selection of floating-point values, including
+      infinity and NaNs.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rounding/modf.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sign_functions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/future.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/future.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,138 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extras/Future Directions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">
+<link rel="prev" href="dist_ref/dist_algorithms.html" title="Distribution Algorithms">
+<link rel="next" href="../special.html" title="Chapter 3. Special Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="dist_ref/dist_algorithms.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../special.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_future">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.future"></a><a class="link" href="future.html" title="Extras/Future Directions">Extras/Future Directions</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.future.h0"></a>
+      <span class="phrase"><a name="math_toolkit.future.adding_additional_location_and_s"></a></span><a class="link" href="future.html#math_toolkit.future.adding_additional_location_and_s">Adding
+      Additional Location and Scale Parameters</a>
+    </h5>
+<p>
+      In some modelling applications we require a distribution with a specific location
+      and scale: often this equates to a specific mean and standard deviation, although
+      for many distributions the relationship between these properties and the location
+      and scale parameters are non-trivial. See http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm
+      for more information.
+    </p>
+<p>
+      The obvious way to handle this is via an adapter template:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">scaled_distribution</span>
+<span class="special">{</span>
+   <span class="identifier">scaled_distribution</span><span class="special">(</span>
+     <span class="keyword">const</span> <span class="identifier">Dist</span> <span class="identifier">dist</span><span class="special">,</span>
+     <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">location</span><span class="special">,</span>
+     <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+      Which would then have its own set of overloads for the non-member accessor
+      functions.
+    </p>
+<h5>
+<a name="math_toolkit.future.h1"></a>
+      <span class="phrase"><a name="math_toolkit.future.an_any_distribution_class"></a></span><a class="link" href="future.html#math_toolkit.future.an_any_distribution_class">An
+      "any_distribution" class</a>
+    </h5>
+<p>
+      It is easy to add a distribution object that virtualises the actual type of
+      the distribution, and can therefore hold "any" object that conforms
+      to the conceptual requirements of a distribution:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">any_distribution</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">></span>
+   <span class="identifier">any_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Distribution</span><span class="special">&</span> <span class="identifier">d</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="comment">// Get the cdf of the underlying distribution:</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">cdf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">any_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>&</span> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="comment">// etc....</span>
+</pre>
+<p>
+      Such a class would facilitate the writing of non-template code that can function
+      with any distribution type.
+    </p>
+<p>
+      The <a href="http://sourceforge.net/projects/distexplorer/" target="_top">Statistical
+      Distribution Explorer</a> utility for Windows is a usage example.
+    </p>
+<p>
+      It's not clear yet whether there is a compelling use case though. Possibly
+      tests for goodness of fit might provide such a use case: this needs more investigation.
+    </p>
+<h5>
+<a name="math_toolkit.future.h2"></a>
+      <span class="phrase"><a name="math_toolkit.future.higher_level_hypothesis_tests"></a></span><a class="link" href="future.html#math_toolkit.future.higher_level_hypothesis_tests">Higher
+      Level Hypothesis Tests</a>
+    </h5>
+<p>
+      Higher-level tests roughly corresponding to the <a href="http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/HypothesisTests.html" target="_top">Mathematica
+      Hypothesis Tests</a> package could be added reasonably easily, for example:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special"><</span><span class="identifier">InputIterator</span><span class="special">>::</span><span class="identifier">value_type</span>
+   <span class="identifier">test_equal_mean</span><span class="special">(</span>
+     <span class="identifier">InputIterator</span> <span class="identifier">a</span><span class="special">,</span>
+     <span class="identifier">InputIterator</span> <span class="identifier">b</span><span class="special">,</span>
+     <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special"><</span><span class="identifier">InputIterator</span><span class="special">>::</span><span class="identifier">value_type</span> <span class="identifier">expected_mean</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the probability that the data in the sequence [a,b) has the mean <span class="emphasis"><em>expected_mean</em></span>.
+    </p>
+<h5>
+<a name="math_toolkit.future.h3"></a>
+      <span class="phrase"><a name="math_toolkit.future.integration_with_statistical_acc"></a></span><a class="link" href="future.html#math_toolkit.future.integration_with_statistical_acc">Integration
+      With Statistical Accumulators</a>
+    </h5>
+<p>
+      <a href="http://boost-sandbox.sourceforge.net/libs/accumulators/doc/html/index.html" target="_top">Eric
+      Niebler's accumulator framework</a> - also work in progress - provides
+      the means to calculate various statistical properties from experimental data.
+      There is an opportunity to integrate the statistical tests with this framework
+      at some later date:
+    </p>
+<pre class="programlisting"><span class="comment">// Define an accumulator, all required statistics to calculate the test</span>
+<span class="comment">// are calculated automatically:</span>
+<span class="identifier">accumulator_set</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">features</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">test_expected_mean</span><span class="special">></span> <span class="special">></span> <span class="identifier">acc</span><span class="special">(</span><span class="identifier">expected_mean</span><span class="special">=</span><span class="number">4</span><span class="special">);</span>
+<span class="comment">// Pass our data to the accumulator:</span>
+<span class="identifier">acc</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">mydata</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">mydata</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">acc</span><span class="special">);</span>
+<span class="comment">// Extract the result:</span>
+<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">probability</span><span class="special">(</span><span class="identifier">acc</span><span class="special">);</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dist_ref/dist_algorithms.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../special.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/gcd_function_object.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/gcd_function_object.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>GCD Function Object</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="synopsis1.html" title="Synopsis">
+<link rel="next" href="lcm_function_object.html" title="LCM Function Object">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lcm_function_object.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_gcd_function_object">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.gcd_function_object"></a><a class="link" href="gcd_function_object.html" title="GCD Function Object">GCD Function Object</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd_evaluator</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="comment">// Types</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">result_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">first_argument_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">second_argument_type</span><span class="special">;</span>
+
+   <span class="comment">// Function object interface</span>
+   <span class="identifier">result_type</span>  <span class="keyword">operator</span> <span class="special">()(</span> <span class="identifier">first_argument_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span>
+   <span class="identifier">second_argument_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+      The boost::math::gcd_evaluator class template defines a function object class
+      to return the greatest common divisor of two integers. The template is parameterized
+      by a single type, called IntegerType here. This type should be a numeric type
+      that represents integers. The result of the function object is always nonnegative,
+      even if either of the operator arguments is negative.
+    </p>
+<p>
+      This function object class template is used in the corresponding version of
+      the GCD function template. If a numeric type wants to customize evaluations
+      of its greatest common divisors, then the type should specialize on the gcd_evaluator
+      class template.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lcm_function_object.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/getting_best.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/getting_best.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,286 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Getting the Best Performance from this Library</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="interp.html" title="Interpreting these Results">
+<link rel="next" href="comp_compilers.html" title="Comparing Compilers">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="interp.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comp_compilers.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_getting_best">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.getting_best"></a><a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">Getting the Best Performance
+    from this Library</a>
+</h2></div></div></div>
+<p>
+      By far the most important thing you can do when using this library is turn
+      on your compiler's optimisation options. As the following table shows the penalty
+      for using the library in debug mode can be quite large.
+    </p>
+<div class="table">
+<a name="math_toolkit.getting_best.performance_comparison_of_releas"></a><p class="title"><b>Table 14.1. Performance Comparison of Release and Debug Settings</b></p>
+<div class="table-contents"><table class="table" summary="Performance Comparison of Release and Debug Settings">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Function
+              </p>
+            </th>
+<th>
+              <p>
+                Microsoft Visual C++ 8.0
+              </p>
+              <p>
+                Debug Settings: /Od /ZI
+              </p>
+            </th>
+<th>
+              <p>
+                Microsoft Visual C++ 8.0
+              </p>
+              <p>
+                Release settings: /Ox /arch:SSE2
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_function.html" title="Error Functions">erf</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>16.65</p>
+<p> </p>
+<p>(1.028e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.483e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>19.28</p>
+<p> </p>
+<p>(1.215e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.888e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+                and <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>8.32</p>
+<p> </p>
+<p>(1.540e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.852e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.25</p>
+<p> </p>
+<p>(7.492e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.311e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>8.57</p>
+<p> </p>
+<p>(2.441e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.847e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.98</p>
+<p> </p>
+<p>(1.044e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.504e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>10.25</p>
+<p> </p>
+<p>(3.721e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.631e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>11.26</p>
+<p> </p>
+<p>(1.124e-004s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.982e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="interp.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comp_compilers.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/hankel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Hankel Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">
+<link rel="next" href="hankel/cyl_hankel.html" title="Cyclic Hankel Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="bessel/sph_bessel.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="hankel/cyl_hankel.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_hankel">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.hankel"></a><a class="link" href="hankel.html" title="Hankel Functions">Hankel Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Cyclic Hankel Functions</span></dt>
+<dt><span class="section">Spherical Hankel Functions</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="bessel/sph_bessel.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="hankel/cyl_hankel.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/hankel/cyl_hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/hankel/cyl_hankel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,152 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Cyclic Hankel Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../hankel.html" title="Hankel Functions">
+<link rel="prev" href="../hankel.html" title="Hankel Functions">
+<link rel="next" href="sph_hankel.html" title="Spherical Hankel Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../hankel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hankel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_hankel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_hankel_cyl_hankel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.hankel.cyl_hankel"></a><a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">Cyclic Hankel Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h0"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.synopsis"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">cyl_hankel_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">cyl_hankel_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">cyl_hankel_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">cyl_hankel_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h1"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.description"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.description">Description</a>
+      </h5>
+<p>
+        The functions <a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>
+        and <a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a> return
+        the result of the Hankel functions
+        of the first and second kind respectively:
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em>cyl_hankel_1(v, x) = H<sub>v</sub><sup>(1)</sup>(x) = J<sub>v</sub>(x) + i Y<sub>v</sub>(x)</em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em>cyl_hankel_2(v, x) = H<sub>v</sub><sup>(2)</sup>(x) = J<sub>v</sub>(x) - i Y<sub>v</sub>(x)</em></span>
+        </p></blockquote></div>
+<p>
+        where:
+      </p>
+<p>
+        <span class="emphasis"><em>J<sub>v</sub>(x)</em></span> is the Bessel function of the first kind, and
+        <span class="emphasis"><em>Y<sub>v</sub>(x)</em></span> is the Bessel function of the second kind.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+        The functions are also optimised for the relatively common case that T1 is
+        an integer.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Note that while the arguments to these functions are real values, the results
+        are complex. That means that the functions can only be instantiated on types
+        <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>
+        and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+        The functions have also been extended to operate over the whole range of
+        <span class="emphasis"><em>v</em></span> and <span class="emphasis"><em>x</em></span> (unlike <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        and <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>).
+      </p>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h2"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.performance"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.performance">Performance</a>
+      </h5>
+<p>
+        These functions are generally more efficient than two separate calls to the
+        underlying Bessel functions as internally Bessel J and Y can be computed
+        simultaneously.
+      </p>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h3"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.testing"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.testing">Testing</a>
+      </h5>
+<p>
+        There are just a few spot tests to exercise all the special case handling
+        - the bulk of the testing is done on the Bessel functions upon which these
+        are based.
+      </p>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h4"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.accuracy"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Refer to <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and
+        <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>.
+      </p>
+<h5>
+<a name="math_toolkit.hankel.cyl_hankel.h5"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.cyl_hankel.implementation"></a></span><a class="link" href="cyl_hankel.html#math_toolkit.hankel.cyl_hankel.implementation">Implementation</a>
+      </h5>
+<p>
+        For <span class="emphasis"><em>x < 0</em></span> the following reflection formulae are used:
+      </p>
+<p>
+        <a href="http://functions.wolfram.com/Bessel-TypeFunctions/BesselJ/16/01/01/" target="_top">
+        <span class="inlinemediaobject"><img src="../../../equations/hankel1.png"></span></a>
+      </p>
+<p>
+        <a href="http://functions.wolfram.com/Bessel-TypeFunctions/BesselY/16/01/01/" target="_top">
+        <span class="inlinemediaobject"><img src="../../../equations/hankel2.png"></span></a>
+      </p>
+<p>
+        <a href="http://functions.wolfram.com/Bessel-TypeFunctions/BesselY/16/01/01/" target="_top">
+        <span class="inlinemediaobject"><img src="../../../equations/hankel3.png"></span></a>
+      </p>
+<p>
+        Otherwise the implementation is trivially in terms of the Bessel J and Y
+        functions.
+      </p>
+<p>
+        Note however, that the Hankel functions compute the Bessel J and Y functions
+        simultaneously, and therefore a single Hankel function call is more efficient
+        than two Bessel function calls. The one exception is when <span class="emphasis"><em>v</em></span>
+        is a small positive integer, in which case the usual Bessel function routines
+        for integer order are used.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../hankel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hankel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_hankel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/hankel/sph_hankel.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/hankel/sph_hankel.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,114 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Spherical Hankel Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../hankel.html" title="Hankel Functions">
+<link rel="prev" href="cyl_hankel.html" title="Cyclic Hankel Functions">
+<link rel="next" href="../airy.html" title="Airy Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cyl_hankel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hankel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../airy.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_hankel_sph_hankel">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.hankel.sph_hankel"></a><a class="link" href="sph_hankel.html" title="Spherical Hankel Functions">Spherical Hankel Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.hankel.sph_hankel.h0"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.sph_hankel.synopsis"></a></span><a class="link" href="sph_hankel.html#math_toolkit.hankel.sph_hankel.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">sph_hankel_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">sph_hankel_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">sph_hankel_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">sph_hankel_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<h5>
+<a name="math_toolkit.hankel.sph_hankel.h1"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.sph_hankel.description"></a></span><a class="link" href="sph_hankel.html#math_toolkit.hankel.sph_hankel.description">Description</a>
+      </h5>
+<p>
+        The functions <a class="link" href="sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_1</a>
+        and <a class="link" href="sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_2</a> return
+        the result of the <a href="http://dlmf.nist.gov/10.47#P1" target="_top">spherical Hankel
+        functions</a> of the first and second kind respectively:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hankel4.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hankel5.png"></span>
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+        The functions are also optimised for the relatively common case that T1 is
+        an integer.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Note that while the arguments to these functions are real values, the results
+        are complex. That means that the functions can only be instantiated on types
+        <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>
+        and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+        The functions have also been extended to operate over the whole range of
+        <span class="emphasis"><em>v</em></span> and <span class="emphasis"><em>x</em></span> (unlike <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+        and <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>).
+      </p>
+<h5>
+<a name="math_toolkit.hankel.sph_hankel.h2"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.sph_hankel.testing"></a></span><a class="link" href="sph_hankel.html#math_toolkit.hankel.sph_hankel.testing">Testing</a>
+      </h5>
+<p>
+        There are just a few spot tests to exercise all the special case handling
+        - the bulk of the testing is done on the Bessel functions upon which these
+        are based.
+      </p>
+<h5>
+<a name="math_toolkit.hankel.sph_hankel.h3"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.sph_hankel.accuracy"></a></span><a class="link" href="sph_hankel.html#math_toolkit.hankel.sph_hankel.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Refer to <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and
+        <a class="link" href="../bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>.
+      </p>
+<h5>
+<a name="math_toolkit.hankel.sph_hankel.h4"></a>
+        <span class="phrase"><a name="math_toolkit.hankel.sph_hankel.implementation"></a></span><a class="link" href="sph_hankel.html#math_toolkit.hankel.sph_hankel.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are trivially implemented in terms of <a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>
+        and <a class="link" href="cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cyl_hankel.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../hankel.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../airy.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/header.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/header.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Header File</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="overview.html" title="Overview">
+<link rel="next" href="synopsis.html" title="Synopsis">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_header">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.header"></a><a class="link" href="header.html" title="Header File">Header File</a>
+</h2></div></div></div>
+<p>
+      The interface and implementation are both supplied by the header file quaternion.hpp.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/header0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/header0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Header File</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="overview0.html" title="Overview">
+<link rel="next" href="synopsis0.html" title="Synopsis">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="overview0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_header0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.header0"></a><a class="link" href="header0.html" title="Header File">Header File</a>
+</h2></div></div></div>
+<p>
+      The interface and implementation are both supplied by the header file octonion.hpp.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/header1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/header1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Header <boost/math/common_factor.hpp></title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="compile_time.html" title="Compile time GCD and LCM determination">
+<link rel="next" href="demo.html" title="Demonstration Program">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="compile_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="demo.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_header1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.header1"></a><a class="link" href="header1.html" title="Header <boost/math/common_factor.hpp>">Header <boost/math/common_factor.hpp></a>
+</h2></div></div></div>
+<p>
+      This header simply includes the headers <boost/math/common_factor_ct.hpp>
+      and <boost/math/common_factor_rt.hpp>.
+    </p>
+<p>
+      Note this is a legacy header: it used to contain the actual implementation,
+      but the compile-time and run-time facilities were moved to separate headers
+      (since they were independent of each other).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="compile_time.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="demo.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using Boost.Math with High-Precision Floating-Point Libraries</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+<link rel="prev" href="../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+<link rel="next" href="high_precision/why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../using_udt.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="high_precision/why_high_precision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.high_precision"></a><a class="link" href="high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">Using Boost.Math with High-Precision
+    Floating-Point Libraries</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="high_precision/why_high_precision.html">Why use
+      a high-precision library rather than built-in floating-point types?</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_multiprecision.html">Using
+      Boost.Multiprecision</a></span></dt>
+<dt><span class="section"><a href="high_precision/float128.html">Using with GCC's
+      __float128 datatype</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_mpfr.html">Using With MPFR
+      or GMP - High-Precision Floating-Point Library</a></span></dt>
+<dt><span class="section">Using e_float Library</span></dt>
+<dt><span class="section">Using NTL Library</span></dt>
+<dt><span class="section"><a href="high_precision/using_test.html">Using without
+      expression templates for Boost.Test and others</a></span></dt>
+</dl></div>
+<p>
+      The special functions, distributions, constants and tools in this library can
+      be used with a number of high-precision libraries, including:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Boost.Multiprecision
+        </li>
+<li class="listitem">
+          e_float (TOMS Algorithm 910)
+        </li>
+<li class="listitem">
+          NTL A Library for doing Number Theory
+        </li>
+<li class="listitem">
+          GNU Multiple Precision Arithmetic Library
+        </li>
+<li class="listitem">
+          GNU MPFR library
+        </li>
+<li class="listitem">
+          __float128
+        </li>
+</ul></div>
+<p>
+      The last four have some license restrictions; only Boost.Multiprecision
+      when using the <code class="computeroutput"><span class="identifier">cpp_float</span></code> backend
+      can provide an unrestricted Boost
+      license.
+    </p>
+<p>
+      At present, the price of a free license is slightly lower speed.
+    </p>
+<p>
+      Of course, the main cost of higher precision is very much decreased (usually
+      at least hundred-fold) computation speed, and big increases in memory use.
+    </p>
+<p>
+      Some libraries offer true <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
+      precision arithmetic</a> where the precision is limited only by avilable
+      memory and compute time, but most are used at some arbitrarily-fixed precision,
+      say 100 decimal digits.
+    </p>
+<p>
+      Boost.Multiprecision
+      can operate in both ways, but the most popular choice is likely to be about
+      a hundred decimal digits, though examples of computing tens of thousands of
+      digits have been demonstrated.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../using_udt.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="high_precision/why_high_precision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/e_float.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/e_float.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using e_float Library</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">
+<link rel="next" href="use_ntl.html" title="Using NTL Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="use_mpfr.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_ntl.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_e_float">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.e_float"></a><a class="link" href="e_float.html" title="Using e_float Library">Using e_float Library</a>
+</h3></div></div></div>
+<p>
+        Boost.Multiprecision
+        was a development from the <a href="http://calgo.acm.org/910.zip" target="_top">e_float
+        (TOMS Algorithm 910)</a> library by Christopher Kormanyos.
+      </p>
+<p>
+        e_float can still be used with Boost.Math library via the header:
+      </p>
+<pre class="programlisting"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">e_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        And the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">ef</span><span class="special">::</span><span class="identifier">e_float</span></code>:
+        this type is a thin wrapper class around ::e_float which provides the necessary
+        syntactic sugar to make everything "just work".
+      </p>
+<p>
+        There is also a concept checking test program for e_float support here.
+      </p>
+<p>
+        <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+        with <code class="computeroutput"><span class="identifier">cpp_float</span></code> backend instead.</strong></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_mpfr.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_ntl.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/float128.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/float128.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using with GCC's __float128 datatype</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_multiprecision.html" title="Using Boost.Multiprecision">
+<link rel="next" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="use_multiprecision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_mpfr.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_float128">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.float128"></a><a class="link" href="float128.html" title="Using with GCC's __float128 datatype">Using with GCC's
+      __float128 datatype</a>
+</h3></div></div></div>
+<p>
+        At present support for GCC's native <code class="computeroutput"><span class="identifier">__float128</span></code>
+        datatype is extremely limited: the numeric constants will all work with that
+        type, and that's about it. If you want to use the distributions or special
+        functions then you will need to provide your own wrapper header that:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Provides std::numeric_limits<__float128> support.
+          </li>
+<li class="listitem">
+            Provides overloads of the standard library math function for type __float128
+            and which forward to the libquadmath equivalents.
+          </li>
+</ul></div>
+<p>
+        Ultimately these facilities should be provided by GCC and libstdc++.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_multiprecision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_mpfr.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_mpfr.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_mpfr.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using With MPFR or GMP - High-Precision Floating-Point Library</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="float128.html" title="Using with GCC's __float128 datatype">
+<link rel="next" href="e_float.html" title="Using e_float Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="float128.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="e_float.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_use_mpfr">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.use_mpfr"></a><a class="link" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">Using With MPFR
+      or GMP - High-Precision Floating-Point Library</a>
+</h3></div></div></div>
+<p>
+        The special functions and tools in this library can be used with MPFR
+        (an arbitrary precision number type based on the <a href="http://gmplib.org/" target="_top">GNU
+        Multiple Precision Arithmetic Library</a>), either via the bindings in
+        boost/math/bindings/mpfr.hpp,
+        or via boost/math/bindings/mpreal.hpp.
+      </p>
+<p>
+        <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+        with GMP/MPFR backend instead.</strong></span>
+      </p>
+<p>
+        In order to use these bindings you will need to have installed MPFR
+        plus its dependency the GMP library.
+        You will also need one of the two supported C++ wrappers for MPFR: gmpfrxx (or mpfr_class),
+        or mpfr-C++ (mpreal).
+      </p>
+<p>
+        Unfortunately neither <code class="computeroutput"><span class="identifier">mpfr_class</span></code>
+        nor <code class="computeroutput"><span class="identifier">mpreal</span></code> quite satisfy
+        our conceptual requirements, so there is a very thin set of additional interfaces
+        and some helper traits defined in boost/math/bindings/mpfr.hpp
+        and boost/math/bindings/mpreal.hpp
+        that you should use in place of including 'gmpfrxx.h' or 'mpreal.h' directly.
+        The classes <code class="computeroutput"><span class="identifier">mpfr_class</span></code> or
+        <code class="computeroutput"><span class="identifier">mpreal</span></code> are then usable unchanged
+        once this header is included, so for example <code class="computeroutput"><span class="identifier">mpfr_class</span></code>'s
+        performance-enhancing expression templates are preserved and fully supported
+        by this library:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">mpfr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">mpfr_class</span><span class="special">::</span><span class="identifier">set_dprec</span><span class="special">(</span><span class="number">500</span><span class="special">);</span> <span class="comment">// 500 bit precision</span>
+   <span class="comment">//</span>
+   <span class="comment">// Note that the argument to tgamma is</span>
+   <span class="comment">// an expression template - that's just fine here.</span>
+   <span class="comment">//</span>
+   <span class="identifier">mpfr_class</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">mpfr_class</span><span class="special">(</span><span class="number">2</span><span class="special">)));</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">50</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Alternatively use with <code class="computeroutput"><span class="identifier">mpreal</span></code>
+        would look like:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">mpreal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span><span class="special">::</span><span class="identifier">set_precision</span><span class="special">(</span><span class="number">500</span><span class="special">);</span> <span class="comment">// 500 bit precision</span>
+   <span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span><span class="special">(</span><span class="number">2</span><span class="special">)));</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">50</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        For those functions that are based upon the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>, the bindings defines a series of approximations with
+        up to 61 terms and accuracy up to approximately 3e-113. This therefore sets
+        the upper limit for accuracy to the majority of functions defined this library
+        when used with either <code class="computeroutput"><span class="identifier">mpfr_class</span></code>
+        or <code class="computeroutput"><span class="identifier">mpreal</span></code>.
+      </p>
+<p>
+        There is a concept checking test program for mpfr support here
+        and here.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float128.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="e_float.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_multiprecision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_multiprecision.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,352 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using Boost.Multiprecision</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">
+<link rel="next" href="float128.html" title="Using with GCC's __float128 datatype">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="why_high_precision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float128.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_use_multiprecision">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.use_multiprecision"></a><a class="link" href="use_multiprecision.html" title="Using Boost.Multiprecision">Using
+      Boost.Multiprecision</a>
+</h3></div></div></div>
+<p>
+        <span class="bold"><strong>All new projects are recommended to use Boost.Multiprecision.</strong></span>
+      </p>
+<h6>
+<a name="math_toolkit.high_precision.use_multiprecision.h0"></a>
+        <span class="phrase"><a name="math_toolkit.high_precision.use_multiprecision.using_boost_multiprecision_cpp_f"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.high_precision.use_multiprecision.using_boost_multiprecision_cpp_f">Using
+        Boost.Multiprecision <code class="computeroutput"><span class="identifier">cpp_float</span></code>
+        for numerical calculations with high precision.</a>
+      </h6>
+<p>
+        The Boost.Multiprecision library can be used for computations requiring precision
+        exceeding that of standard built-in types such as float, double and long
+        double. For extended-precision calculations, Boost.Multiprecision supplies
+        a template data type called cpp_dec_float. The number of decimal digits of
+        precision is fixed at compile-time via template parameter.
+      </p>
+<p>
+        To use these floating-point types and constants, we need some includes:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+</pre>
+<p>
+        So now we can demonstrate with some trivial calculations:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+        Using <code class="computeroutput"><span class="keyword">typedef</span> <span class="identifier">cpp_dec_float_50</span></code>
+        hides the complexity of multiprecision to allow us to define variables with
+        50 decimal digit precision just like built-in <code class="computeroutput"><span class="keyword">double</span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span><span class="special">;</span>
+
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">seventh</span> <span class="special">=</span> <span class="identifier">cpp_dec_float_50</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">/</span> <span class="number">7</span><span class="special">;</span>
+</pre>
+<p>
+        By default, output would only show the standard 6 decimal digits, so set
+        precision to show all 50 significant digits.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">seventh</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        which outputs:
+      </p>
+<pre class="programlisting"><span class="number">0.14285714285714285714285714285714285714285714285714</span>
+</pre>
+<p>
+        We can also use constants, guaranteed to be initialized with the very last
+        bit of precision.
+      </p>
+<pre class="programlisting"><span class="identifier">cpp_dec_float_50</span> <span class="identifier">circumference</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>()</span> <span class="special">*</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">seventh</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">circumference</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        which outputs
+      </p>
+<pre class="programlisting"><span class="number">0.89759790102565521098932668093700082405633411410717</span>
+</pre>
+<h6>
+<a name="math_toolkit.high_precision.use_multiprecision.h1"></a>
+        <span class="phrase"><a name="math_toolkit.high_precision.use_multiprecision.using_boost_multiprecision_to_ge"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.high_precision.use_multiprecision.using_boost_multiprecision_to_ge">Using
+        Boost.Multiprecision to generate a high-precision array of sin coefficents
+        for use with FFT.</a>
+      </h6>
+<p>
+        The Boost.Multiprecision library can be used for computations requiring precision
+        exceeding that of standard built-in types such as float, double and long
+        double. For extended-precision calculations, Boost.Multiprecision supplies
+        a template data type called cpp_dec_float. The number of decimal digits of
+        precision is fixed at compile-time via template parameter.
+      </p>
+<p>
+        To use these floating-point types and constants, we need some includes:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">// using boost::math::constants::pi;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iterator</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">fstream</span><span class="special">></span>
+</pre>
+<p>
+        Define a text string which is a C++ comment with the program licence, copyright
+        etc. You could of course, tailor this to your needs, including copyright
+        claim. There are versions of <code class="computeroutput"><span class="identifier">array</span></code>
+        provided by Boost/array in boost::array or the C++11 std::array, but since
+        not all platforms provide C++11 support, this program provides the Boost
+        version as fallback.
+      </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">prolog</span> <span class="special">=</span>
+<span class="special">{</span>
+  <span class="string">"// Use, modification and distribution are subject to the\n"</span>
+  <span class="string">"// Boost Software License, Version 1.0.\n"</span>
+  <span class="string">"// (See accompanying file LICENSE_1_0.txt\n"</span>
+  <span class="string">"// or copy at "</span><span class="string">"http://www.boost.org/LICENSE_1_0.txt)\n\n"</span>
+
+  <span class="string">"// Copyright ???? 2013.\n\n"</span>
+
+  <span class="string">"// Use boost/array if std::array (C++11 feature) is not available.\n"</span>
+  <span class="string">"#ifdef  BOOST_NO_CXX11_HDR_ARRAY\n"</span>
+  <span class="string">"#include <boost/array/array.hpp>\n"</span>
+  <span class="string">"#else\n"</span>
+  <span class="string">"#include <array>\n"</span>
+  <span class="string">"#endif\n\n"</span>
+<span class="special">};</span>
+
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span>
+<span class="comment">// VS 2010 (wrongly) requires these at file scope, not local scope in main.</span>
+<span class="comment">// This program also requires -std=c++11 option to compile using Clang and GCC.</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+        One often needs to compute tables of numbers in mathematical software.
+      </p>
+<p>
+        A fast Fourier transform (FFT), for example, may use a table of the values
+        of sin((π/2<sup>n</sup>) in its implementation details. In order to maximize the precision
+        in the FFT implementation, the precision of the tabulated trigonometric values
+        should exceed that of the built-in floating-point type used in the FFT.
+      </p>
+<p>
+        The sample below computes a table of the values of sin(π/2<sup>n</sup>) in the range
+        1 <= n <= 31.
+      </p>
+<p>
+        This program makes use of, among other program elements, the data type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span></code> for a precision of 50
+        decimal digits from Boost.Multiprecision, the value of constant π retrieved
+        from Boost.Math, guaranteed to be initialized with the very last bit of precision
+        for the type, here <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>,
+        and a C++11 lambda function combined with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">()</span></code>.
+      </p>
+<p>
+        define the number of values in the array.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">size</span> <span class="special">=</span> <span class="number">32U</span><span class="special">;</span>
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">pi</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>();</span>
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">p2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>();</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span> <span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">></span> <span class="identifier">sin_values</span> <span class="special">(</span><span class="identifier">size</span><span class="special">);</span>
+<span class="keyword">unsigned</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">1U</span><span class="special">;</span>
+<span class="comment">// Generate the sine values.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span>
+<span class="special">(</span>
+  <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">begin</span> <span class="special">(),</span>
+  <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">end</span> <span class="special">(),</span>
+  <span class="special">[&</span><span class="identifier">n</span><span class="special">](</span><span class="identifier">cpp_dec_float_50</span><span class="special">&</span> <span class="identifier">y</span><span class="special">)</span>
+  <span class="special">{</span>
+    <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">pi</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>()</span> <span class="special">/</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">cpp_dec_float_50</span> <span class="special">(</span><span class="number">2</span><span class="special">),</span> <span class="identifier">n</span><span class="special">));</span>
+    <span class="special">++</span><span class="identifier">n</span><span class="special">;</span>
+  <span class="special">}</span>
+<span class="special">);</span>
+</pre>
+<p>
+        Define the floating-point type for the generated file, either built-in <code class="computeroutput"><span class="keyword">double</span><span class="special">,</span> </code>float,
+        or <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+        or a user defined type like <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>.
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">fp_type</span> <span class="special">=</span> <span class="string">"double"</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Generating an `std::array` or `boost::array` for floating-point type: "</span>
+  <span class="special"><<</span> <span class="identifier">fp_type</span> <span class="special"><<</span> <span class="string">". "</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        By default, output would only show the standard 6 decimal digits, so set
+        precision to show enough significant digits for the chosen floating-point
+        type. For <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+        is 50. (50 decimal digits should be ample for most applications).
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">precision</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="comment">//  std::cout.precision(std::numeric_limits<cpp_dec_float_50>::digits10);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">precision</span> <span class="special"><<</span> <span class="string">" decimal digits precision. "</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        Of course, one could also choose less, for example, 36 would be sufficient
+        for the most precise current <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code> implementations using 128-bit.
+        In general, it should be a couple of decimal digits more (guard digits) than
+        <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">max_digits10</span></code> for the target system floating-point
+        type. If the implementation does not provide <code class="computeroutput"><span class="identifier">max_digits10</span></code>,
+        the the Kahan formula <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">digits</span>
+        <span class="special">*</span> <span class="number">3010</span><span class="special">/</span><span class="number">10000</span> <span class="special">+</span>
+        <span class="number">2</span></code> can be used instead.
+      </p>
+<p>
+        The compiler will read these values as decimal digits strings and use the
+        nearest representation for the floating-point type.
+      </p>
+<p>
+        Now output all the sine table, to a file of your chosen name.
+      </p>
+<pre class="programlisting">  <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">sines_name</span><span class="special">[]</span> <span class="special">=</span> <span class="string">"sines.hpp"</span><span class="special">;</span>  <span class="comment">// In same directory as .exe</span>
+
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">ofstream</span> <span class="identifier">fout</span><span class="special">(</span><span class="identifier">sines_name</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">out</span><span class="special">);</span>  <span class="comment">// Creates if no file exists,</span>
+  <span class="comment">// & uses default overwrite/ ios::replace.</span>
+  <span class="keyword">if</span> <span class="special">(</span><span class="identifier">fout</span><span class="special">.</span><span class="identifier">is_open</span><span class="special">()</span> <span class="special">==</span> <span class="keyword">false</span><span class="special">)</span>
+  <span class="special">{</span>  <span class="comment">// failed to open OK!</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Open file "</span> <span class="special"><<</span> <span class="identifier">sines_name</span> <span class="special"><<</span> <span class="string">" failed!"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+    <span class="keyword">return</span> <span class="identifier">EXIT_FAILURE</span><span class="special">;</span>
+  <span class="special">}</span>
+  <span class="keyword">else</span>
+  <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Open file "</span> <span class="special"><<</span> <span class="identifier">sines_name</span> <span class="special"><<</span> <span class="string">" for output OK."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+    <span class="identifier">fout</span> <span class="special"><<</span> <span class="identifier">prolog</span> <span class="special"><<</span> <span class="string">"// Table of "</span> <span class="special"><<</span> <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" values with "</span>
+      <span class="special"><<</span> <span class="identifier">precision</span> <span class="special"><<</span> <span class="string">" decimal digits precision,\n"</span>
+      <span class="string">"// generated by program fft_sines_table.cpp.\n"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+    <span class="identifier">fout</span> <span class="special"><<</span>
+<span class="string">"#ifdef BOOST_NO_CXX11_HDR_ARRAY"</span><span class="string">"\n"</span>
+ <span class="string">"  static const boost::array<double, "</span> <span class="special"><<</span> <span class="identifier">size</span> <span class="special"><<</span> <span class="string">"> sines =\n"</span>
+<span class="string">"#else"</span><span class="string">"\n"</span>
+<span class="string">"  static const std::array<double, "</span> <span class="special"><<</span> <span class="identifier">size</span> <span class="special"><<</span> <span class="string">"> sines =\n"</span>
+<span class="string">"#endif"</span><span class="string">"\n"</span>
+    <span class="string">"{{\n"</span><span class="special">;</span> <span class="comment">// 2nd { needed for some GCC compiler versions.</span>
+    <span class="identifier">fout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">);</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0U</span><span class="special">;</span> <span class="special">;)</span>
+    <span class="special">{</span>
+      <span class="identifier">fout</span> <span class="special"><<</span> <span class="string">"  "</span> <span class="special"><<</span> <span class="identifier">sin_values</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span>
+      <span class="keyword">if</span> <span class="special">(</span><span class="identifier">i</span> <span class="special">==</span> <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">size</span><span class="special">()-</span><span class="number">1</span><span class="special">)</span>
+      <span class="special">{</span> <span class="comment">// next is last value.</span>
+        <span class="identifier">fout</span> <span class="special"><<</span> <span class="string">"\n}};\n"</span><span class="special">;</span> <span class="comment">// 2nd } needed for some GCC compiler versions.</span>
+        <span class="keyword">break</span><span class="special">;</span>
+      <span class="special">}</span>
+      <span class="keyword">else</span>
+      <span class="special">{</span>
+        <span class="identifier">fout</span> <span class="special"><<</span> <span class="string">",\n"</span><span class="special">;</span>
+        <span class="identifier">i</span><span class="special">++;</span>
+      <span class="special">}</span>
+    <span class="special">}</span>
+
+    <span class="identifier">fout</span><span class="special">.</span><span class="identifier">close</span><span class="special">();</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Close file "</span> <span class="special"><<</span> <span class="identifier">sines_name</span> <span class="special"><<</span> <span class="string">" for output OK."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+  <span class="special">}</span>
+</pre>
+<p>
+        The output file generated can be seen at ..\sines.hpp
+      </p>
+<p>
+        The table output is:
+      </p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">printed</span> <span class="identifier">table</span> <span class="identifier">is</span><span class="special">:</span>
+
+  <span class="number">1</span>
+  <span class="number">0.70710678118654752440084436210484903928483593768847</span>
+  <span class="number">0.38268343236508977172845998403039886676134456248563</span>
+  <span class="number">0.19509032201612826784828486847702224092769161775195</span>
+  <span class="number">0.098017140329560601994195563888641845861136673167501</span>
+  <span class="number">0.049067674327418014254954976942682658314745363025753</span>
+  <span class="number">0.024541228522912288031734529459282925065466119239451</span>
+  <span class="number">0.012271538285719926079408261951003212140372319591769</span>
+  <span class="number">0.0061358846491544753596402345903725809170578863173913</span>
+  <span class="number">0.003067956762965976270145365490919842518944610213452</span>
+  <span class="number">0.0015339801862847656123036971502640790799548645752374</span>
+  <span class="number">0.00076699031874270452693856835794857664314091945206328</span>
+  <span class="number">0.00038349518757139558907246168118138126339502603496474</span>
+  <span class="number">0.00019174759731070330743990956198900093346887403385916</span>
+  <span class="number">9.5873799095977345870517210976476351187065612851145e-05</span>
+  <span class="number">4.7936899603066884549003990494658872746866687685767e-05</span>
+  <span class="number">2.3968449808418218729186577165021820094761474895673e-05</span>
+  <span class="number">1.1984224905069706421521561596988984804731977538387e-05</span>
+  <span class="number">5.9921124526424278428797118088908617299871778780951e-06</span>
+  <span class="number">2.9960562263346607504548128083570598118251878683408e-06</span>
+  <span class="number">1.4980281131690112288542788461553611206917585861527e-06</span>
+  <span class="number">7.4901405658471572113049856673065563715595930217207e-07</span>
+  <span class="number">3.7450702829238412390316917908463317739740476297248e-07</span>
+  <span class="number">1.8725351414619534486882457659356361712045272098287e-07</span>
+  <span class="number">9.3626757073098082799067286680885620193236507169473e-08</span>
+  <span class="number">4.681337853654909269511551813854009695950362701667e-08</span>
+  <span class="number">2.3406689268274552759505493419034844037886207223779e-08</span>
+  <span class="number">1.1703344634137277181246213503238103798093456639976e-08</span>
+  <span class="number">5.8516723170686386908097901008341396943900085051757e-09</span>
+  <span class="number">2.9258361585343193579282304690689559020175857150074e-09</span>
+  <span class="number">1.4629180792671596805295321618659637103742615227834e-09</span>
+<span class="special">*/</span>
+</pre>
+<p>
+        The output can be copied as text and readily integrated into a given source
+        code. Alternatively, the output can be written to a text or even be used
+        within a self-written automatic code generator as this example.
+      </p>
+<p>
+        A computer algebra system can be used to verify the results obtained from
+        Boost.Math and Boost.Multiprecision. For example, the <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram
+        Mathematica</a> computer algebra system can obtain a similar table with
+        the command:
+      </p>
+<pre class="programlisting"><span class="identifier">Table</span><span class="special">[</span><span class="identifier">N</span><span class="special">[</span><span class="identifier">Sin</span><span class="special">[</span><span class="identifier">Pi</span> <span class="special">/</span> <span class="special">(</span><span class="number">2</span><span class="special">^</span><span class="identifier">n</span><span class="special">)],</span> <span class="number">50</span><span class="special">],</span> <span class="special">{</span><span class="identifier">n</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="number">1</span><span class="special">}]</span>
+</pre>
+<p>
+        The Wolfram Alpha computational
+        knowledge engine can also be used to generate this table. The same command
+        can be pasted into the compute box.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="why_high_precision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float128.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_ntl.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/use_ntl.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using NTL Library</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="e_float.html" title="Using e_float Library">
+<link rel="next" href="using_test.html" title="Using without expression templates for Boost.Test and others">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="e_float.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="using_test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_use_ntl">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.use_ntl"></a><a class="link" href="use_ntl.html" title="Using NTL Library">Using NTL Library</a>
+</h3></div></div></div>
+<p>
+        NTL::RR (an arbitrarily-fixed
+        precision floating-point number type), can be used via the bindings in boost/math/bindings/rr.hpp.
+        For details, see <a href="http://shoup.net/ntl/" target="_top">NTL: A Library for doing
+        Number Theory by Victor Shoup</a>.
+      </p>
+<p>
+        <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+        instead.</strong></span>
+      </p>
+<p>
+        Unfortunately <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> doesn't quite satisfy our conceptual
+        requirements, so there is a very thin wrapper class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">ntl</span><span class="special">::</span><span class="identifier">RR</span></code> defined in boost/math/bindings/rr.hpp
+        that you should use in place of <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code>. The
+        class is intended to be a drop-in replacement for the "real" NTL::RR
+        that adds some syntactic sugar to keep this library happy, plus some of the
+        standard library functions not implemented in NTL.
+      </p>
+<p>
+        For those functions that are based upon the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>, the bindings defines a series of approximations with
+        up to 61 terms and accuracy up to approximately 3e-113. This therefore sets
+        the upper limit for accuracy to the majority of functions defined this library
+        when used with <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code>.
+      </p>
+<p>
+        There is a concept checking test program for NTL support here.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="e_float.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="using_test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/using_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/using_test.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using without expression templates for Boost.Test and others</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_ntl.html" title="Using NTL Library">
+<link rel="next" href="../concepts.html" title="Conceptual Requirements for Real Number Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="use_ntl.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_using_test">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.using_test"></a><a class="link" href="using_test.html" title="Using without expression templates for Boost.Test and others">Using without
+      expression templates for Boost.Test and others</a>
+</h3></div></div></div>
+<p>
+        As noted in the Boost.Multiprecision
+        documentation, certain program constructs will not compile when using expression
+        templates. One example that many users may encounter is Boost.Test (1.54
+        and earlier) when using macro BOOST_CHECK_CLOSE and BOOST_CHECK_CLOSE_FRACTION.
+      </p>
+<p>
+        If, for example, you wish to use any multiprecision type like <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code> in place of <code class="computeroutput"><span class="keyword">double</span></code> to give more precision, you will need
+        to override the default <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_on</span></code>
+        with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span></code>.
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        To define a 50 decimal digit type using <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code>,
+        you must pass two template parameters to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span></code>.
+      </p>
+<p>
+        It may be more legible to use a two-staged type definition such as this:
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float</span><span class="special"><</span><span class="number">50</span><span class="special">></span> <span class="identifier">mp_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span><span class="special"><</span><span class="identifier">mp_backend</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span><span class="special">></span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+        Here, we first define <code class="computeroutput"><span class="identifier">mp_backend</span></code>
+        as <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code> with 50
+        digits. The second step passes this backend to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span></code>
+        with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span></code>, an enumerated type.
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float</span><span class="special"><</span><span class="number">50</span><span class="special">>,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span><span class="special">></span>
+<span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+        You can reduce typing with a <code class="computeroutput"><span class="keyword">using</span></code>
+        directive <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">;</span></code>
+        if desired, as shown below.
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">number</span><span class="special"><</span><span class="identifier">cpp_dec_float</span><span class="special"><</span><span class="number">50</span><span class="special">>,</span> <span class="identifier">et_off</span><span class="special">></span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+        Now <code class="computeroutput"><span class="identifier">cpp_dec_float_50_noet</span></code>
+        can be used as a direct replacement for built-in types like <code class="computeroutput"><span class="keyword">double</span></code> etc.
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">cpp_float_test_check_close</span><span class="special">)</span>
+<span class="special">{</span>
+
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">);</span> <span class="comment">// All significant digits.</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Show trailing zeros.</span>
+
+  <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">a</span> <span class="special">(</span><span class="string">"1."</span><span class="special">);</span>
+  <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">b</span> <span class="special">(</span><span class="string">"1."</span><span class="special">);</span>
+  <span class="identifier">b</span> <span class="special">+=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">();</span> <span class="comment">// Increment least significant decimal digit.</span>
+
+  <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">eps</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50_noet</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">();</span>
+
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span><span class="string">"a = "</span> <span class="special"><<</span> <span class="identifier">a</span> <span class="special"><<</span> <span class="string">",\nb = "</span> <span class="special"><<</span> <span class="identifier">b</span> <span class="special"><<</span> <span class="string">",\neps = "</span> <span class="special"><<</span> <span class="identifier">eps</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+  <span class="identifier">BOOST_CHECK_CLOSE</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">eps</span> <span class="special">*</span> <span class="number">100</span><span class="special">);</span> <span class="comment">// Expected to pass (because tolerance is as percent).</span>
+  <span class="identifier">BOOST_CHECK_CLOSE_FRACTION</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">eps</span><span class="special">);</span> <span class="comment">// Expected to pass (because tolerance is as fraction).</span>
+</pre>
+<p>
+        Using <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code> with
+        the default expression template use switched on, the compiler error message
+        for `BOOST_CHECK_CLOSE_FRACTION(a, b, eps); would be:
+      </p>
+<pre class="programlisting"><span class="comment">// failure floating_point_comparison.hpp(59): error C2440: 'static_cast' :</span>
+<span class="comment">// cannot convert from 'int' to 'boost::multiprecision::detail::expression<tag,Arg1,Arg2,Arg3,Arg4>'</span>
+</pre>
+<p>
+        A full example code is at test_cpp_float_close_fraction.cpp
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_ntl.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/high_precision/why_high_precision.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/high_precision/why_high_precision.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,127 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Why use a high-precision library rather than built-in floating-point types?</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="next" href="use_multiprecision.html" title="Using Boost.Multiprecision">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../high_precision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_multiprecision.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_high_precision_why_high_precision">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.high_precision.why_high_precision"></a><a class="link" href="why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">Why use
+      a high-precision library rather than built-in floating-point types?</a>
+</h3></div></div></div>
+<p>
+        For nearly all applications, the built-in floating-point types, <code class="computeroutput"><span class="keyword">double</span></code> (and <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code> if this offers higher precision
+        than <code class="computeroutput"><span class="keyword">double</span></code>) offer enough precision,
+        typically a dozen decimal digits.
+      </p>
+<p>
+        Some reasons why one would want to use a higher precision:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            A much more precise result (many more digits) is just a requirement.
+          </li>
+<li class="listitem">
+            The range of the computed value exceeds the range of the type: factorials
+            are the textbook example.
+          </li>
+<li class="listitem">
+            Using double is (or may be) too inaccurate.
+          </li>
+<li class="listitem">
+            Using long double (or may be) is too inaccurate.
+          </li>
+<li class="listitem">
+            Using an extended precision type implemented in software as double-double
+            (Darwin)
+            is sometimes unpredictably inaccurate.
+          </li>
+<li class="listitem">
+            Loss of precision or inaccuracy caused by extreme arguments or cancellation
+            error.
+          </li>
+<li class="listitem">
+            An accuracy as good as possible for a chosen built-in floating-point
+            type is required.
+          </li>
+<li class="listitem">
+            As a reference value, for example, to determine the inaccuracy of a value
+            computed with a built-in floating point type, (perhaps even using some
+            quick'n'dirty algorithm). The accuracy of many functions and distributions
+            in Boost.Math has been measured in this way from tables of very high
+            precision (up to 1000 decimal digits).
+          </li>
+</ul></div>
+<p>
+        Many functions and distributions have differences from exact values that
+        are only a few least significant bits - computation noise. Others, often
+        those for which analytical solutions are not available, require approximations
+        and iteration: these may lose several decimal digits of precision.
+      </p>
+<p>
+        Much larger loss of precision can occur for boundary
+        or corner cases,
+        often caused by <a href="http://en.wikipedia.org/wiki/Loss_of_significance" target="_top">cancellation
+        errors</a>.
+      </p>
+<p>
+        (Some of the worst and most common examples of <a href="http://en.wikipedia.org/wiki/Loss_of_significance" target="_top">cancellation
+        error or loss of significance</a> can be avoided by using <a class="link" href="../stat_tut/overview/complements.html" title="Complements are supported too - and when to use them">complements</a>:
+        see <a class="link" href="../stat_tut/overview/complements.html#why_complements">why complements?</a>).
+      </p>
+<p>
+        If you require a value which is as accurate as can be represented in the
+        floating-point type, and is thus the closest representable value and has
+        an error less than 1/2 a <a href="http://en.wikipedia.org/wiki/Least_significant_bit" target="_top">least
+        significant bit</a> or ulp
+        it may be useful to use a higher-precision type, for example, <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>, to generate this value.
+        Conversion of this value to a built-in floating-point type ('float', <code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code>) will not cause any further
+        loss of precision. A decimal digit string will also be 'read' precisely by
+        the compiler into a built-in floating-point type to the nearest representable
+        value.
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          In contrast, reading a value from an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span></code>
+          into a built-in floating-point type is <span class="bold"><strong>not guaranteed</strong></span>
+          by the C++ Standard to give the nearest representable value.
+        </p></td></tr>
+</table></div>
+<p>
+        William Kahan coined the term <a href="http://en.wikipedia.org/wiki/Rounding#The_table-maker.27s_dilemma" target="_top">Table-Maker's
+        Dilemma</a> for the problem of correctly rounding functions. Using a
+        much higher precision (50 or 100 decimal digits) is a practical way of generating
+        (almost always) correctly rounded values.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../high_precision.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="use_multiprecision.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/hints.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/hints.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Other Hints and tips</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="conventions.html" title="Document Conventions">
+<link rel="next" href="directories.html" title="Directory and File Structure">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="conventions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="directories.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_hints">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.hints"></a><a class="link" href="hints.html" title="Other Hints and tips">Other Hints and tips</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          If you have a feature request, or if it appears that the implementation
+          is in error, please search first in the <a href="https://svn.boost.org/trac/boost/" target="_top">Boost
+          Trac</a>.
+        </li>
+<li class="listitem">
+          Trac entries may
+          indicate that updates or corrections that solve your problem are in Boost-trunk where changes
+          are being assembled and tested ready for the next release. You may, at
+          your own risk, download new versions from there.
+        </li>
+<li class="listitem">
+          If you do not understand why things work the way they do, see the <span class="emphasis"><em>rationale</em></span>
+          section.
+        </li>
+<li class="listitem">
+          If you do not find your idea/feature/complaint, please reach the author
+          preferably through the Boost development list, or email the author(s) direct.
+        </li>
+</ul></div>
+<h6>
+<a name="math_toolkit.hints.h0"></a>
+      <span class="phrase"><a name="math_toolkit.hints.admonishments"></a></span><a class="link" href="hints.html#math_toolkit.hints.admonishments">Admonishments</a>
+    </h6>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        In addition, notes such as this one specify non-essential information that
+        provides additional background or rationale.
+      </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        These blocks contain information that you may find helpful while coding.
+      </p></td></tr>
+</table></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        These contain information that is imperative to understanding a concept.
+        Failure to follow suggestions in these blocks will probably result in undesired
+        behavior. Read all of these you find.
+      </p></td></tr>
+</table></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Failure to heed this will lead to incorrect, and very likely undesired, results.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="conventions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="directories.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="acknowledgement.html" title="Acknowledgements">
+<link rel="next" href="todo.html" title="To Do">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgement.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history"></a><a class="link" href="history.html" title="History">History</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          1.5.8 - 17/12/2005: Converted documentation to Quickbook Format.
+        </li>
+<li class="listitem">
+          1.5.7 - 24/02/2003: transitionned to the unit test framework; <boost/config.hpp>
+          now included by the library header (rather than the test files).
+        </li>
+<li class="listitem">
+          1.5.6 - 15/10/2002: Gcc2.95.x and stlport on linux compatibility by Alkis
+          Evlogimenos (alkis_at_[hidden]).
+        </li>
+<li class="listitem">
+          1.5.5 - 27/09/2002: Microsoft VCPP 7 compatibility, by Michael Stevens
+          (michael_at_[hidden]); requires the /Za compiler option.
+        </li>
+<li class="listitem">
+          1.5.4 - 19/09/2002: fixed problem with multiple inclusion (in different
+          translation units); attempt at an improved compatibility with Microsoft
+          compilers, by Michael Stevens (michael_at_[hidden]) and Fredrik Blomqvist;
+          other compatibility fixes.
+        </li>
+<li class="listitem">
+          1.5.3 - 01/02/2002: bugfix and Gcc 2.95.3 compatibility by Douglas Gregor
+          (gregod_at_[hidden]).
+        </li>
+<li class="listitem">
+          1.5.2 - 07/07/2001: introduced namespace math.
+        </li>
+<li class="listitem">
+          1.5.1 - 07/06/2001: (end of Boost review) now includes <boost/math/special_functions/sinc.hpp>
+          and <boost/math/special_functions/sinhc.hpp> instead of <boost/special_functions.hpp>;
+          corrected bug in sin (Daryle Walker); removed check for self-assignment
+          (Gary Powel); made converting functions explicit (Gary Powel); added overflow
+          guards for division operators and abs (Peter Schmitteckert); added sup
+          and l1; used Vesa Karvonen's CPP metaprograming technique to simplify code.
+        </li>
+<li class="listitem">
+          1.5.0 - 26/03/2001: boostification, inlining of all operators except input,
+          output and pow, fixed exception safety of some members (template version)
+          and output operator, added spherical, semipolar, multipolar, cylindrospherical
+          and cylindrical.
+        </li>
+<li class="listitem">
+          1.4.0 - 09/01/2001: added tan and tanh.
+        </li>
+<li class="listitem">
+          1.3.1 - 08/01/2001: cosmetic fixes.
+        </li>
+<li class="listitem">
+          1.3.0 - 12/07/2000: pow now uses Maarten Hilferink's (mhilferink_at_[hidden])
+          algorithm.
+        </li>
+<li class="listitem">
+          1.2.0 - 25/05/2000: fixed the division operators and output; changed many
+          signatures.
+        </li>
+<li class="listitem">
+          1.1.0 - 23/05/2000: changed sinc into sinc_pi; added sin, cos, sinh, cosh.
+        </li>
+<li class="listitem">
+          1.0.0 - 10/08/1999: first public version.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgement.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,98 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="acknowledgements.html" title="Acknowledgements">
+<link rel="next" href="todo0.html" title="To Do">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgements.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="todo0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history0"></a><a class="link" href="history0.html" title="History">History</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          1.5.8 - 17/12/2005: Converted documentation to Quickbook Format.
+        </li>
+<li class="listitem">
+          1.5.7 - 25/02/2003: transitionned to the unit test framework; <boost/config.hpp>
+          now included by the library header (rather than the test files), via <boost/math/quaternion.hpp>.
+        </li>
+<li class="listitem">
+          1.5.6 - 15/10/2002: Gcc2.95.x and stlport on linux compatibility by Alkis
+          Evlogimenos (alkis_at_[hidden]).
+        </li>
+<li class="listitem">
+          1.5.5 - 27/09/2002: Microsoft VCPP 7 compatibility, by Michael Stevens
+          (michael_at_[hidden]); requires the /Za compiler option.
+        </li>
+<li class="listitem">
+          1.5.4 - 19/09/2002: fixed problem with multiple inclusion (in different
+          translation units); attempt at an improved compatibility with Microsoft
+          compilers, by Michael Stevens (michael_at_[hidden]) and Fredrik Blomqvist;
+          other compatibility fixes.
+        </li>
+<li class="listitem">
+          1.5.3 - 01/02/2002: bugfix and Gcc 2.95.3 compatibility by Douglas Gregor
+          (gregod_at_[hidden]).
+        </li>
+<li class="listitem">
+          1.5.2 - 07/07/2001: introduced namespace math.
+        </li>
+<li class="listitem">
+          1.5.1 - 07/06/2001: (end of Boost review) now includes <boost/math/special_functions/sinc.hpp>
+          and <boost/math/special_functions/sinhc.hpp> instead of <boost/special_functions.hpp>;
+          corrected bug in sin (Daryle Walker); removed check for self-assignment
+          (Gary Powel); made converting functions explicit (Gary Powel); added overflow
+          guards for division operators and abs (Peter Schmitteckert); added sup
+          and l1; used Vesa Karvonen's CPP metaprograming technique to simplify code.
+        </li>
+<li class="listitem">
+          1.5.0 - 23/03/2001: boostification, inlining of all operators except input,
+          output and pow, fixed exception safety of some members (template version).
+        </li>
+<li class="listitem">
+          1.4.0 - 09/01/2001: added tan and tanh.
+        </li>
+<li class="listitem">
+          1.3.1 - 08/01/2001: cosmetic fixes.
+        </li>
+<li class="listitem">
+          1.3.0 - 12/07/2000: pow now uses Maarten Hilferink's (mhilferink_at_[hidden])
+          algorithm.
+        </li>
+<li class="listitem">
+          1.2.0 - 25/05/2000: fixed the division operators and output; changed many
+          signatures.
+        </li>
+<li class="listitem">
+          1.1.0 - 23/05/2000: changed sinc into sinc_pi; added sin, cos, sinh, cosh.
+        </li>
+<li class="listitem">
+          1.0.0 - 10/08/1999: first public version.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acknowledgements.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="todo0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,621 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History and What's New</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">
+<link rel="next" href="tr1.html" title="C99 and C++ TR1 C-style Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="building.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tr1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history1"></a><a class="link" href="history1.html" title="History and What's New">History and What's New</a>
+</h2></div></div></div>
+<p>
+      Currently open bug reports can be viewed here.
+    </p>
+<p>
+      All bug reports including closed ones can be viewed here.
+    </p>
+<h5>
+<a name="math_toolkit.history1.h0"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_54"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_54">Boost-1.54</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added many references to Boost.Multiprecision and <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+          as an example of a User-defined Type (UDT).
+        </li>
+<li class="listitem">
+          Added Clang to list of supported compilers.
+        </li>
+<li class="listitem">
+          Fixed constants to use a thread-safe cache of computed values when used
+          at arbitrary precision.
+        </li>
+<li class="listitem">
+          Added finding zeros of Bessel functions <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>,
+          <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span></code>, <code class="computeroutput"><span class="identifier">air_ai_zeros</span></code> and <code class="computeroutput"><span class="identifier">air_bi_zeros</span></code>(by
+          Christopher Kormanyos).
+        </li>
+<li class="listitem">
+          More accuracy improvements to the Bessel J and Y functions from Rocco Romeo.
+        </li>
+<li class="listitem">
+          Fixed nasty cyclic dependency bug that caused some headers to not compile
+          #7999.
+        </li>
+<li class="listitem">
+          Fixed bug in <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+          that caused spurious overflow for arguments between 142.5 and 143.
+        </li>
+<li class="listitem">
+          Fixed bug in raise_rounding_error that caused it to return an incorrect
+          result when throwing an exception is turned off #7905.
+        </li>
+<li class="listitem">
+          Added minimal __float128 support.
+        </li>
+<li class="listitem">
+          Fixed bug in edge-cases of poisson quantile #8308.
+        </li>
+<li class="listitem">
+          Adjusted heuristics used in Halley iteration to cope with inverting the
+          incomplete beta in tricky regions where the derivative is flatlining. Example
+          is computing the quantile of the Fisher F distribution for probabilities
+          smaller than machine epsilon. See ticket #8314.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h1"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_53">Boost-1.53</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Fixed issues #7325,
+          #7415
+          and #7416,
+          #7183,
+          #7649,
+          #7694,
+          #4445,
+          #7492,
+          #7891,
+          #7429.
+        </li>
+<li class="listitem">
+          Fixed mistake in calculating pooled standard deviation in two-sample students
+          t example #7402.
+        </li>
+<li class="listitem">
+          Improve complex acos/asin/atan, see #7290,
+          #7291.
+        </li>
+<li class="listitem">
+          Improve accuracy in some corner cases of <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+          and <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>/<a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+          thanks to suggestions from Rocco Romeo.
+        </li>
+<li class="listitem">
+          Improve accuracy of Bessel J and Y for integer orders thanks to suggestions
+          from Rocco Romeo.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h2"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_52">Boost-1.52</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Corrected moments for small degrees of freedom #7177
+          (reported by Thomas Mang).
+        </li>
+<li class="listitem">
+          Added <a class="link" href="airy.html" title="Airy Functions">Airy functions</a> and <a class="link" href="jacobi.html" title="Jacobi Elliptic Functions">Jacobi Elliptic functions</a>.
+        </li>
+<li class="listitem">
+          Corrected failure to detect bad parameters in many distributions #6934 (reported
+          by Florian Schoppmann) by adding a function check_out_of_range to test
+          many possible bad parameters. This test revealed several distributions
+          where the checks for bad parameters were ineffective, and these have been
+          rectified.
+        </li>
+<li class="listitem">
+          Fixed issue in Hankel functions that causes incorrect values to be returned
+          for <span class="emphasis"><em>x < 0</em></span> and ν odd, see #7135.
+        </li>
+<li class="listitem">
+          Fixed issues #6517,
+          #6362,
+          #7053,
+          #2693,
+          #6937,
+          #7099.
+        </li>
+<li class="listitem">
+          Permitted infinite degrees of freedom #7259
+          implemented using the normal distribution (requested by Thomas Mang).
+        </li>
+<li class="listitem">
+          Much enhanced accuracy for large degrees of freedom ν and/or large non-centrality
+          δ
+by switching to use the Students t distribution (or Normal distribution
+          for infinite degrees of freedom) centered at delta, when δ / (4 * ν) <
+          epsilon for the floating-point type in use. #7259.
+          It was found that the incomplete beta was suffering from serious cancellation
+          errors when degrees of freedom was very large. (That has now been fixed
+          in our code, but any code based on Didonato and Morris's original papers
+          (probably every implementation out there actually) will have the same issue).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h3"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_51"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_51">Boost-1.51</a>
+    </h5>
+<p>
+      See Boost-1.52 - some items were added but not listed in time for the release.
+    </p>
+<h5>
+<a name="math_toolkit.history1.h4"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_50"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_50">Boost-1.50</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Promoted math constants to be 1st class citizens, including convenient
+          access to the most widely used built-in float, double, long double via
+          three namespaces.
+        </li>
+<li class="listitem">
+          Added the Owen's T function and Skew Normal distribution written by Benjamin
+          Sobotta: see <a class="link" href="owens_t.html" title="Owen's T function">Owens T</a> and skew_normal_distrib.
+        </li>
+<li class="listitem">
+          Added Hankel functions <a class="link" href="hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>,
+          <a class="link" href="hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a>, <a class="link" href="hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_1</a> and <a class="link" href="hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_2</a>.
+        </li>
+<li class="listitem">
+          Corrected issue <a href="https://svn.boost.org/trac/boost/ticket/6627" target="_top">#6627
+          nonfinite_num_put formatting of 0.0 is incorrect</a> based on a patch
+          submitted by K R Walker.
+        </li>
+<li class="listitem">
+          Changed constant initialization mechanism so that it is thread safe even
+          for user-defined types, also so that user defined types get the full precision
+          of the constant, even when <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code> does not. So for example
+          128-bit rational approximations will work with UDT's and do the right thing,
+          even though <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+          may be only 64 or 80 bits.
+        </li>
+<li class="listitem">
+          Fixed issue in <code class="computeroutput"><span class="identifier">bessel_jy</span></code>
+          which causes Y<sub>8.5</sub>(4π) to yield a NaN.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h5"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_49">Boost-1.49</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Deprecated wrongly named <code class="computeroutput"><span class="identifier">twothirds</span></code>
+          math constant in favour of <code class="computeroutput"><span class="identifier">two_thirds</span></code>
+          (with underscore separator). (issue #6199).
+        </li>
+<li class="listitem">
+          Refactored test data and some special function code to improve support
+          for arbitary precision and/or expression-template-enabled types.
+        </li>
+<li class="listitem">
+          Added new faster zeta function evaluation method.
+        </li>
+</ul></div>
+<p>
+      Fixed issues:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Corrected CDF complement for Laplace distribution (issue #6151).
+        </li>
+<li class="listitem">
+          Corrected branch cuts on the complex inverse trig functions, to handle
+          signed zeros (issue #6171).
+        </li>
+<li class="listitem">
+          Fixed bug in <code class="computeroutput"><span class="identifier">bessel_yn</span></code>
+          which caused incorrect overflow errors to be raised for negative <span class="emphasis"><em>n</em></span>
+          (issue #6367).
+        </li>
+<li class="listitem">
+          Also fixed minor/cosmetic/configuration issues #6120,
+          #6191,
+          #5982,
+          #6130,
+          #6234,
+          #6307,
+          #6192.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h6"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_48">Boost-1.48</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added new series evaluation methods to the cyclic Bessel I, J, K and Y
+          functions. Also taken great care to avoid spurious over and underflow of
+          these functions. Fixes issue #5560
+        </li>
+<li class="listitem">
+          Added an example of using Inverse Chi-Squared distribution for Bayesian
+          statistics, provided by Thomas Mang.
+        </li>
+<li class="listitem">
+          Added tests to use improved version of lexical_cast which handles C99 nonfinites
+          without using globale facets.
+        </li>
+<li class="listitem">
+          Corrected wrong out-of-bound uniform distribution CDF complement values
+          #5733.
+        </li>
+<li class="listitem">
+          Enabled long double support on OpenBSD (issue #6014).
+        </li>
+<li class="listitem">
+          Changed nextafter and related functions to behave in the same way as other
+          implementations - so that nextafter(+INF, 0) is a finite value (issue
+          #5832).
+        </li>
+<li class="listitem">
+          Changed tuple include configuration to fix issue when using in conjunction
+          with Boost.Tr1 (issue #5934).
+        </li>
+<li class="listitem">
+          Changed class eps_tolerance to behave correctly when both ends of the range
+          are zero (issue #6001).
+        </li>
+<li class="listitem">
+          Fixed missing include guards on prime.hpp (issue #5927).
+        </li>
+<li class="listitem">
+          Removed unused/undocumented constants from constants.hpp (issue #5982).
+        </li>
+<li class="listitem">
+          Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue #5914).
+        </li>
+<li class="listitem">
+          Minor patches for Cray compiler compatibility.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h7"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_47">Boost-1.47</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added changesign function to sign.hpp to facilitate addition of nonfinite
+          facets.
+        </li>
+<li class="listitem">
+          Addition of nonfinite facets from Johan Rade, with tests, examples of use
+          for C99 format infinity and NaN, and documentation.
+        </li>
+<li class="listitem">
+          Added tests and documentation of changesign from Johan Rade.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h8"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_46_1">Boost-1.46.1</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Fixed issues #5095,
+          #5113.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1.h9"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_46_0">Boost-1.46.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Wald, Inverse Gaussian and geometric distributions.
+        </li>
+<li class="listitem">
+          Added information about configuration macros.
+        </li>
+<li class="listitem">
+          Added support for mpreal as a real-numbered type.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h10"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_45_0">Boost-1.45.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added warnings about potential ambiguity with std random library in distribution
+          and function names.
+        </li>
+<li class="listitem">
+          Added inverse gamma distribution and inverse chi_square and scaled inverse
+          chi_square.
+        </li>
+<li class="listitem">
+          Editorial revision of documentation, and added FAQ.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h11"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_44_0">Boost-1.44.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Fixed incorrect range and support for Rayleigh distribution.
+        </li>
+<li class="listitem">
+          Fixed numerical error in the quantile of the Student's T distribution:
+          the function was returning garbage values for non-integer degrees of freedom
+          between 2 and 3.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h12"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_41_0">Boost-1.41.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Significantly improved performance for the incomplete gamma function and
+          its inverse.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1.h13"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_40_0">Boost-1.40.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added support for MPFR as a bignum type.
+        </li>
+<li class="listitem">
+          Added some full specializations of the policy classes to reduce compile
+          times.
+        </li>
+<li class="listitem">
+          Added logistic and hypergeometric distributions, from Gautam Sewani's Google
+          Summer of Code project.
+        </li>
+<li class="listitem">
+          Added Laplace distribution submitted by Thijs van den Berg.
+        </li>
+<li class="listitem">
+          Updated performance test code to include new distributions, and improved
+          the performance of the non-central distributions.
+        </li>
+<li class="listitem">
+          Added SSE2 optimised <a class="link" href="lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
+          code, from Gautam Sewani's Google Summer of Code project.
+        </li>
+<li class="listitem">
+          Fixed bug in cyl_bessel_i that used an incorrect approximation for ν = 0.5,
+          also effects the non-central Chi Square Distribution when ν = 3, see bug
+          report #2877.
+        </li>
+<li class="listitem">
+          Fixed minor bugs #2873.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h14"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_38_0">Boost-1.38.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Johan Råde's optimised floating point classification routines.
+        </li>
+<li class="listitem">
+          Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h15"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_37_0">Boost-1.37.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Improved accuracy and testing of the inverse hypergeometric functions.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1.h16"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_36_0">Boost-1.36.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Noncentral Chi Squared Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral Beta Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral F Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral T Distribution.
+        </li>
+<li class="listitem">
+          Added Exponential Integral Functions.
+        </li>
+<li class="listitem">
+          Added Zeta Function.
+        </li>
+<li class="listitem">
+          Added Rounding and Truncation functions.
+        </li>
+<li class="listitem">
+          Added Compile time powers of runtime bases.
+        </li>
+<li class="listitem">
+          Added SSE2 optimizations for Lanczos evaluation.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h17"></a>
+      <span class="phrase"><a name="math_toolkit.history1.boost_1_35_0_post_review_first_o"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_35_0_post_review_first_o">Boost-1.35.0:
+      Post Review First Official Release</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Policy based framework that allows fine grained control over function
+          behaviour.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed default behaviour
+          for domain, pole and overflow errors to throw an exception (based on review
+          feedback), this behaviour can be customised using <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>'s.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed exception thrown
+          when an internal evaluation error occurs to boost::math::evaluation_error.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed discrete quantiles
+          to return an integer result: this is anything up to 20 times faster than
+          finding the true root, this behaviour can be customised using <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>'s.
+        </li>
+<li class="listitem">
+          Polynomial/rational function evaluation is now customisable and hopefully
+          faster than before.
+        </li>
+<li class="listitem">
+          Added performance test program.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h18"></a>
+      <span class="phrase"><a name="math_toolkit.history1.milestone_4_second_review_candid"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_4_second_review_candid">Milestone
+      4: Second Review Candidate (1st March 2007)</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Moved Xiaogang Zhang's Bessel Functions code into the library, and brought
+          them into line with the rest of the code.
+        </li>
+<li class="listitem">
+          Added C# "Distribution Explorer" demo application.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h19"></a>
+      <span class="phrase"><a name="math_toolkit.history1.milestone_3_first_review_candida"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_3_first_review_candida">Milestone
+      3: First Review Candidate (31st Dec 2006)</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implemented the main probability distribution and density functions.
+        </li>
+<li class="listitem">
+          Implemented digamma.
+        </li>
+<li class="listitem">
+          Added more factorial functions.
+        </li>
+<li class="listitem">
+          Implemented the Hermite, Legendre and Laguerre polynomials plus the spherical
+          harmonic functions from TR1.
+        </li>
+<li class="listitem">
+          Moved Xiaogang Zhang's elliptic integral code into the library, and brought
+          them into line with the rest of the code.
+        </li>
+<li class="listitem">
+          Moved Hubert Holin's existing Boost.Math special functions into this library
+          and brought them into line with the rest of the code.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h20"></a>
+      <span class="phrase"><a name="math_toolkit.history1.milestone_2_released_september_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_2_released_september_1">Milestone
+      2: Released September 10th 2006</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implement preview release of the statistical distributions.
+        </li>
+<li class="listitem">
+          Added statistical distributions tutorial.
+        </li>
+<li class="listitem">
+          Implemented root finding algorithms.
+        </li>
+<li class="listitem">
+          Implemented the inverses of the incomplete gamma and beta functions.
+        </li>
+<li class="listitem">
+          Rewrite erf/erfc as rational approximations (valid to 128-bit precision).
+        </li>
+<li class="listitem">
+          Integrated the statistical results generated from the test data with Boost.Test:
+          uses a database of expected results, indexed by test, floating point type,
+          platform, and compiler.
+        </li>
+<li class="listitem">
+          Improved lgamma near 1 and 2 (rational approximations).
+        </li>
+<li class="listitem">
+          Improved erf/erfc inverses (rational approximations).
+        </li>
+<li class="listitem">
+          Implemented Rational function generation (the Remez method).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1.h21"></a>
+      <span class="phrase"><a name="math_toolkit.history1.milestone_1_released_march_31st_"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_1_released_march_31st_">Milestone
+      1: Released March 31st 2006</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implement gamma/beta/erf functions along with their incomplete counterparts.
+        </li>
+<li class="listitem">
+          Generate high quality test data, against which future improvements can
+          be judged.
+        </li>
+<li class="listitem">
+          Provide tools for the evaluation of infinite series, continued fractions,
+          and rational functions.
+        </li>
+<li class="listitem">
+          Provide tools for testing against tabulated test data, and collecting statistics
+          on error rates.
+        </li>
+<li class="listitem">
+          Provide sufficient docs for people to be able to find their way around
+          the library.
+        </li>
+</ul></div>
+<p>
+      SVN Revisions:
+    </p>
+<p>
+      Sandbox and trunk last synchonised at revision: .
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="building.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tr1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history1_0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history1_0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,621 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History and What's New</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Chapter 16. Library Status">
+<link rel="prev" href="../status.html" title="Chapter 16. Library Status">
+<link rel="next" href="issues.html" title="Known Issues, and TODO List">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../status.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="issues.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history1_0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history1_0"></a><a class="link" href="history1_0.html" title="History and What's New">History and What's New</a>
+</h2></div></div></div>
+<p>
+      Currently open bug reports can be viewed here.
+    </p>
+<p>
+      All bug reports including closed ones can be viewed here.
+    </p>
+<h5>
+<a name="math_toolkit.history1_0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_54"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_54">Boost-1.54</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added many references to Boost.Multiprecision and <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+          as an example of a User-defined Type (UDT).
+        </li>
+<li class="listitem">
+          Added Clang to list of supported compilers.
+        </li>
+<li class="listitem">
+          Fixed constants to use a thread-safe cache of computed values when used
+          at arbitrary precision.
+        </li>
+<li class="listitem">
+          Added finding zeros of Bessel functions <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>,
+          <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span></code>, <code class="computeroutput"><span class="identifier">air_ai_zeros</span></code> and <code class="computeroutput"><span class="identifier">air_bi_zeros</span></code>(by
+          Christopher Kormanyos).
+        </li>
+<li class="listitem">
+          More accuracy improvements to the Bessel J and Y functions from Rocco Romeo.
+        </li>
+<li class="listitem">
+          Fixed nasty cyclic dependency bug that caused some headers to not compile
+          #7999.
+        </li>
+<li class="listitem">
+          Fixed bug in <a class="link" href="sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+          that caused spurious overflow for arguments between 142.5 and 143.
+        </li>
+<li class="listitem">
+          Fixed bug in raise_rounding_error that caused it to return an incorrect
+          result when throwing an exception is turned off #7905.
+        </li>
+<li class="listitem">
+          Added minimal __float128 support.
+        </li>
+<li class="listitem">
+          Fixed bug in edge-cases of poisson quantile #8308.
+        </li>
+<li class="listitem">
+          Adjusted heuristics used in Halley iteration to cope with inverting the
+          incomplete beta in tricky regions where the derivative is flatlining. Example
+          is computing the quantile of the Fisher F distribution for probabilities
+          smaller than machine epsilon. See ticket #8314.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h1"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_53"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_53">Boost-1.53</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Fixed issues #7325,
+          #7415
+          and #7416,
+          #7183,
+          #7649,
+          #7694,
+          #4445,
+          #7492,
+          #7891,
+          #7429.
+        </li>
+<li class="listitem">
+          Fixed mistake in calculating pooled standard deviation in two-sample students
+          t example #7402.
+        </li>
+<li class="listitem">
+          Improve complex acos/asin/atan, see #7290,
+          #7291.
+        </li>
+<li class="listitem">
+          Improve accuracy in some corner cases of <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
+          and <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a>/<a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+          thanks to suggestions from Rocco Romeo.
+        </li>
+<li class="listitem">
+          Improve accuracy of Bessel J and Y for integer orders thanks to suggestions
+          from Rocco Romeo.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h2"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_52"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_52">Boost-1.52</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Corrected moments for small degrees of freedom #7177
+          (reported by Thomas Mang).
+        </li>
+<li class="listitem">
+          Added <a class="link" href="airy.html" title="Airy Functions">Airy functions</a> and <a class="link" href="jacobi.html" title="Jacobi Elliptic Functions">Jacobi Elliptic functions</a>.
+        </li>
+<li class="listitem">
+          Corrected failure to detect bad parameters in many distributions #6934 (reported
+          by Florian Schoppmann) by adding a function check_out_of_range to test
+          many possible bad parameters. This test revealed several distributions
+          where the checks for bad parameters were ineffective, and these have been
+          rectified.
+        </li>
+<li class="listitem">
+          Fixed issue in Hankel functions that causes incorrect values to be returned
+          for <span class="emphasis"><em>x < 0</em></span> and ν odd, see #7135.
+        </li>
+<li class="listitem">
+          Fixed issues #6517,
+          #6362,
+          #7053,
+          #2693,
+          #6937,
+          #7099.
+        </li>
+<li class="listitem">
+          Permitted infinite degrees of freedom #7259
+          implemented using the normal distribution (requested by Thomas Mang).
+        </li>
+<li class="listitem">
+          Much enhanced accuracy for large degrees of freedom ν and/or large non-centrality
+          δ
+by switching to use the Students t distribution (or Normal distribution
+          for infinite degrees of freedom) centered at delta, when δ / (4 * ν) <
+          epsilon for the floating-point type in use. #7259.
+          It was found that the incomplete beta was suffering from serious cancellation
+          errors when degrees of freedom was very large. (That has now been fixed
+          in our code, but any code based on Didonato and Morris's original papers
+          (probably every implementation out there actually) will have the same issue).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h3"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_51"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_51">Boost-1.51</a>
+    </h5>
+<p>
+      See Boost-1.52 - some items were added but not listed in time for the release.
+    </p>
+<h5>
+<a name="math_toolkit.history1_0.h4"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_50"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_50">Boost-1.50</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Promoted math constants to be 1st class citizens, including convenient
+          access to the most widely used built-in float, double, long double via
+          three namespaces.
+        </li>
+<li class="listitem">
+          Added the Owen's T function and Skew Normal distribution written by Benjamin
+          Sobotta: see <a class="link" href="owens_t.html" title="Owen's T function">Owens T</a> and skew_normal_distrib.
+        </li>
+<li class="listitem">
+          Added Hankel functions <a class="link" href="hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_1</a>,
+          <a class="link" href="hankel/cyl_hankel.html" title="Cyclic Hankel Functions">cyl_hankel_2</a>, <a class="link" href="hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_1</a> and <a class="link" href="hankel/sph_hankel.html" title="Spherical Hankel Functions">sph_hankel_2</a>.
+        </li>
+<li class="listitem">
+          Corrected issue <a href="https://svn.boost.org/trac/boost/ticket/6627" target="_top">#6627
+          nonfinite_num_put formatting of 0.0 is incorrect</a> based on a patch
+          submitted by K R Walker.
+        </li>
+<li class="listitem">
+          Changed constant initialization mechanism so that it is thread safe even
+          for user-defined types, also so that user defined types get the full precision
+          of the constant, even when <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code> does not. So for example
+          128-bit rational approximations will work with UDT's and do the right thing,
+          even though <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+          may be only 64 or 80 bits.
+        </li>
+<li class="listitem">
+          Fixed issue in <code class="computeroutput"><span class="identifier">bessel_jy</span></code>
+          which causes Y<sub>8.5</sub>(4π) to yield a NaN.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h5"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_49"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_49">Boost-1.49</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Deprecated wrongly named <code class="computeroutput"><span class="identifier">twothirds</span></code>
+          math constant in favour of <code class="computeroutput"><span class="identifier">two_thirds</span></code>
+          (with underscore separator). (issue #6199).
+        </li>
+<li class="listitem">
+          Refactored test data and some special function code to improve support
+          for arbitary precision and/or expression-template-enabled types.
+        </li>
+<li class="listitem">
+          Added new faster zeta function evaluation method.
+        </li>
+</ul></div>
+<p>
+      Fixed issues:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Corrected CDF complement for Laplace distribution (issue #6151).
+        </li>
+<li class="listitem">
+          Corrected branch cuts on the complex inverse trig functions, to handle
+          signed zeros (issue #6171).
+        </li>
+<li class="listitem">
+          Fixed bug in <code class="computeroutput"><span class="identifier">bessel_yn</span></code>
+          which caused incorrect overflow errors to be raised for negative <span class="emphasis"><em>n</em></span>
+          (issue #6367).
+        </li>
+<li class="listitem">
+          Also fixed minor/cosmetic/configuration issues #6120,
+          #6191,
+          #5982,
+          #6130,
+          #6234,
+          #6307,
+          #6192.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h6"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_48"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_48">Boost-1.48</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added new series evaluation methods to the cyclic Bessel I, J, K and Y
+          functions. Also taken great care to avoid spurious over and underflow of
+          these functions. Fixes issue #5560
+        </li>
+<li class="listitem">
+          Added an example of using Inverse Chi-Squared distribution for Bayesian
+          statistics, provided by Thomas Mang.
+        </li>
+<li class="listitem">
+          Added tests to use improved version of lexical_cast which handles C99 nonfinites
+          without using globale facets.
+        </li>
+<li class="listitem">
+          Corrected wrong out-of-bound uniform distribution CDF complement values
+          #5733.
+        </li>
+<li class="listitem">
+          Enabled long double support on OpenBSD (issue #6014).
+        </li>
+<li class="listitem">
+          Changed nextafter and related functions to behave in the same way as other
+          implementations - so that nextafter(+INF, 0) is a finite value (issue
+          #5832).
+        </li>
+<li class="listitem">
+          Changed tuple include configuration to fix issue when using in conjunction
+          with Boost.Tr1 (issue #5934).
+        </li>
+<li class="listitem">
+          Changed class eps_tolerance to behave correctly when both ends of the range
+          are zero (issue #6001).
+        </li>
+<li class="listitem">
+          Fixed missing include guards on prime.hpp (issue #5927).
+        </li>
+<li class="listitem">
+          Removed unused/undocumented constants from constants.hpp (issue #5982).
+        </li>
+<li class="listitem">
+          Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue #5914).
+        </li>
+<li class="listitem">
+          Minor patches for Cray compiler compatibility.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h7"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_47"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_47">Boost-1.47</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added changesign function to sign.hpp to facilitate addition of nonfinite
+          facets.
+        </li>
+<li class="listitem">
+          Addition of nonfinite facets from Johan Rade, with tests, examples of use
+          for C99 format infinity and NaN, and documentation.
+        </li>
+<li class="listitem">
+          Added tests and documentation of changesign from Johan Rade.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h8"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_46_1"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_46_1">Boost-1.46.1</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Fixed issues #5095,
+          #5113.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h9"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_46_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_46_0">Boost-1.46.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Wald, Inverse Gaussian and geometric distributions.
+        </li>
+<li class="listitem">
+          Added information about configuration macros.
+        </li>
+<li class="listitem">
+          Added support for mpreal as a real-numbered type.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h10"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_45_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_45_0">Boost-1.45.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added warnings about potential ambiguity with std random library in distribution
+          and function names.
+        </li>
+<li class="listitem">
+          Added inverse gamma distribution and inverse chi_square and scaled inverse
+          chi_square.
+        </li>
+<li class="listitem">
+          Editorial revision of documentation, and added FAQ.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h11"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_44_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_44_0">Boost-1.44.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Fixed incorrect range and support for Rayleigh distribution.
+        </li>
+<li class="listitem">
+          Fixed numerical error in the quantile of the Student's T distribution:
+          the function was returning garbage values for non-integer degrees of freedom
+          between 2 and 3.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h12"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_41_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_41_0">Boost-1.41.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Significantly improved performance for the incomplete gamma function and
+          its inverse.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h13"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_40_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_40_0">Boost-1.40.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added support for MPFR as a bignum type.
+        </li>
+<li class="listitem">
+          Added some full specializations of the policy classes to reduce compile
+          times.
+        </li>
+<li class="listitem">
+          Added logistic and hypergeometric distributions, from Gautam Sewani's Google
+          Summer of Code project.
+        </li>
+<li class="listitem">
+          Added Laplace distribution submitted by Thijs van den Berg.
+        </li>
+<li class="listitem">
+          Updated performance test code to include new distributions, and improved
+          the performance of the non-central distributions.
+        </li>
+<li class="listitem">
+          Added SSE2 optimised <a class="link" href="lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
+          code, from Gautam Sewani's Google Summer of Code project.
+        </li>
+<li class="listitem">
+          Fixed bug in cyl_bessel_i that used an incorrect approximation for ν = 0.5,
+          also effects the non-central Chi Square Distribution when ν = 3, see bug
+          report #2877.
+        </li>
+<li class="listitem">
+          Fixed minor bugs #2873.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h14"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_38_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_38_0">Boost-1.38.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Johan Råde's optimised floating point classification routines.
+        </li>
+<li class="listitem">
+          Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h15"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_37_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_37_0">Boost-1.37.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Improved accuracy and testing of the inverse hypergeometric functions.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h16"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_36_0"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_36_0">Boost-1.36.0</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Noncentral Chi Squared Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral Beta Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral F Distribution.
+        </li>
+<li class="listitem">
+          Added Noncentral T Distribution.
+        </li>
+<li class="listitem">
+          Added Exponential Integral Functions.
+        </li>
+<li class="listitem">
+          Added Zeta Function.
+        </li>
+<li class="listitem">
+          Added Rounding and Truncation functions.
+        </li>
+<li class="listitem">
+          Added Compile time powers of runtime bases.
+        </li>
+<li class="listitem">
+          Added SSE2 optimizations for Lanczos evaluation.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h17"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.boost_1_35_0_post_review_first_o"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.boost_1_35_0_post_review_first_o">Boost-1.35.0:
+      Post Review First Official Release</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Added Policy based framework that allows fine grained control over function
+          behaviour.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed default behaviour
+          for domain, pole and overflow errors to throw an exception (based on review
+          feedback), this behaviour can be customised using <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>'s.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed exception thrown
+          when an internal evaluation error occurs to boost::math::evaluation_error.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Breaking change:</strong></span> Changed discrete quantiles
+          to return an integer result: this is anything up to 20 times faster than
+          finding the true root, this behaviour can be customised using <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a>'s.
+        </li>
+<li class="listitem">
+          Polynomial/rational function evaluation is now customisable and hopefully
+          faster than before.
+        </li>
+<li class="listitem">
+          Added performance test program.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h18"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.milestone_4_second_review_candid"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.milestone_4_second_review_candid">Milestone
+      4: Second Review Candidate (1st March 2007)</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Moved Xiaogang Zhang's Bessel Functions code into the library, and brought
+          them into line with the rest of the code.
+        </li>
+<li class="listitem">
+          Added C# "Distribution Explorer" demo application.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h19"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.milestone_3_first_review_candida"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.milestone_3_first_review_candida">Milestone
+      3: First Review Candidate (31st Dec 2006)</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implemented the main probability distribution and density functions.
+        </li>
+<li class="listitem">
+          Implemented digamma.
+        </li>
+<li class="listitem">
+          Added more factorial functions.
+        </li>
+<li class="listitem">
+          Implemented the Hermite, Legendre and Laguerre polynomials plus the spherical
+          harmonic functions from TR1.
+        </li>
+<li class="listitem">
+          Moved Xiaogang Zhang's elliptic integral code into the library, and brought
+          them into line with the rest of the code.
+        </li>
+<li class="listitem">
+          Moved Hubert Holin's existing Boost.Math special functions into this library
+          and brought them into line with the rest of the code.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h20"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.milestone_2_released_september_1"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.milestone_2_released_september_1">Milestone
+      2: Released September 10th 2006</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implement preview release of the statistical distributions.
+        </li>
+<li class="listitem">
+          Added statistical distributions tutorial.
+        </li>
+<li class="listitem">
+          Implemented root finding algorithms.
+        </li>
+<li class="listitem">
+          Implemented the inverses of the incomplete gamma and beta functions.
+        </li>
+<li class="listitem">
+          Rewrite erf/erfc as rational approximations (valid to 128-bit precision).
+        </li>
+<li class="listitem">
+          Integrated the statistical results generated from the test data with Boost.Test:
+          uses a database of expected results, indexed by test, floating point type,
+          platform, and compiler.
+        </li>
+<li class="listitem">
+          Improved lgamma near 1 and 2 (rational approximations).
+        </li>
+<li class="listitem">
+          Improved erf/erfc inverses (rational approximations).
+        </li>
+<li class="listitem">
+          Implemented Rational function generation (the Remez method).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.history1_0.h21"></a>
+      <span class="phrase"><a name="math_toolkit.history1_0.milestone_1_released_march_31st_"></a></span><a class="link" href="history1_0.html#math_toolkit.history1_0.milestone_1_released_march_31st_">Milestone
+      1: Released March 31st 2006</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Implement gamma/beta/erf functions along with their incomplete counterparts.
+        </li>
+<li class="listitem">
+          Generate high quality test data, against which future improvements can
+          be judged.
+        </li>
+<li class="listitem">
+          Provide tools for the evaluation of infinite series, continued fractions,
+          and rational functions.
+        </li>
+<li class="listitem">
+          Provide tools for testing against tabulated test data, and collecting statistics
+          on error rates.
+        </li>
+<li class="listitem">
+          Provide sufficient docs for people to be able to find their way around
+          the library.
+        </li>
+</ul></div>
+<p>
+      SVN Revisions:
+    </p>
+<p>
+      Sandbox and trunk last synchonised at revision: .
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../status.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="issues.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history2.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="atanh.html" title="atanh">
+<link rel="next" href="../quaternions.html" title="Chapter 8. Quaternions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="atanh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../quaternions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history2">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history2"></a><a class="link" href="history2.html" title="History">History</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          2005/12/17: Added support for platforms with no meaningful numeric_limits<>::infinity().
+        </li>
+<li class="listitem">
+          2005/12/01: Initial version, added as part of the TR1 library.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="atanh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../quaternions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/history3.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/history3.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="rationale.html" title="Rationale">
+<link rel="next" href="credits0.html" title="Credits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_history3">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.history3"></a><a class="link" href="history3.html" title="History">History</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          17 Dec 2005: Converted documentation to Quickbook Format.
+        </li>
+<li class="listitem">
+          2 Jul 2002: Compile-time and run-time items separated to new headers.
+        </li>
+<li class="listitem">
+          7 Nov 2001: Initial version
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/implementation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/implementation.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Implementation and Accuracy</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="prev" href="../inverse_complex.html" title="Chapter 7. Complex Number Functions">
+<link rel="next" href="asin.html" title="asin">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../inverse_complex.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="asin.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_implementation">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.implementation"></a><a class="link" href="implementation.html" title="Implementation and Accuracy">Implementation and Accuracy</a>
+</h2></div></div></div>
+<p>
+      Although there are deceptively simple formulae available for all of these functions,
+      a naive implementation that used these formulae would fail catastrophically
+      for some input values. The Boost versions of these functions have been implemented
+      using the methodology described in "Implementing the Complex Arcsine and
+      Arccosine Functions Using Exception Handling" by T. E. Hull Thomas F.
+      Fairgrieve and Ping Tak Peter Tang, ACM Transactions on Mathematical Software,
+      Vol. 23, No. 3, September 1997. This means that the functions are well defined
+      over the entire complex number range, and produce accurate values even at the
+      extremes of that range, where as a naive formula would cause overflow or underflow
+      to occur during the calculation, even though the result is actually a representable
+      value. The maximum theoretical relative error for all of these functions is
+      less than 9.5ε for every machine-representable point in the complex plane. Please
+      refer to comments in the header files themselves and to the above mentioned
+      paper for more information on the implementation methodology.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../inverse_complex.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inverse_complex.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="asin.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/implementation0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/implementation0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,838 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Additional Implementation Notes</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="prev" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="next" href="relative_error.html" title="Relative Error">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../backgrounders.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="relative_error.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_implementation0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.implementation0"></a><a class="link" href="implementation0.html" title="Additional Implementation Notes">Additional Implementation
+    Notes</a>
+</h2></div></div></div>
+<p>
+      The majority of the implementation notes are included with the documentation
+      of each function or distribution. The notes here are of a more general nature,
+      and reflect more the general implementation philosophy used.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.implemention_philosophy"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.implemention_philosophy">Implemention
+      philosophy</a>
+    </h5>
+<p>
+      "First be right, then be fast."
+    </p>
+<p>
+      There will always be potential compromises to be made between speed and accuracy.
+      It may be possible to find faster methods, particularly for certain limited
+      ranges of arguments, but for most applications of math functions and distributions,
+      we judge that speed is rarely as important as accuracy.
+    </p>
+<p>
+      So our priority is accuracy.
+    </p>
+<p>
+      To permit evaluation of accuracy of the special functions, production of extremely
+      accurate tables of test values has received considerable effort.
+    </p>
+<p>
+      (It also required much CPU effort - there was some danger of molten plastic
+      dripping from the bottom of JM's laptop, so instead, PAB's Dual-core desktop
+      was kept 50% busy for <span class="bold"><strong>days</strong></span> calculating some
+      tables of test values!)
+    </p>
+<p>
+      For a specific RealType, say float or double, it may be possible to find approximations
+      for some functions that are simpler and thus faster, but less accurate (perhaps
+      because there are no refining iterations, for example, when calculating inverse
+      functions).
+    </p>
+<p>
+      If these prove accurate enough to be "fit for his purpose", then
+      a user may substitute his custom specialization.
+    </p>
+<p>
+      For example, there are approximations dating back from times when computation
+      was a <span class="bold"><strong>lot</strong></span> more expensive:
+    </p>
+<p>
+      H Goldberg and H Levine, Approximate formulas for percentage points and normalisation
+      of t and chi squared, Ann. Math. Stat., 17(4), 216 - 225 (Dec 1946).
+    </p>
+<p>
+      A H Carter, Approximations to percentage points of the z-distribution, Biometrika
+      34(2), 352 - 358 (Dec 1947).
+    </p>
+<p>
+      These could still provide sufficient accuracy for some speed-critical applications.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h1"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.accuracy_and_representation_of_t"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.accuracy_and_representation_of_t">Accuracy
+      and Representation of Test Values</a>
+    </h5>
+<p>
+      In order to be accurate enough for as many as possible real types, constant
+      values are given to 50 decimal digits if available (though many sources proved
+      only accurate near to 64-bit double precision). Values are specified as long
+      double types by appending L, unless they are exactly representable, for example
+      integers, or binary fractions like 0.125. This avoids the risk of loss of accuracy
+      converting from double, the default type. Values are used after static_cast<RealType>(1.2345L)
+      to provide the appropriate RealType for spot tests.
+    </p>
+<p>
+      Functions that return constants values, like kurtosis for example, are written
+      as
+    </p>
+<p>
+      <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(-</span><span class="number">3</span><span class="special">)</span> <span class="special">/</span>
+      <span class="number">5</span><span class="special">;</span></code>
+    </p>
+<p>
+      to provide the most accurate value that the compiler can compute for the real
+      type. (The denominator is an integer and so will be promoted exactly).
+    </p>
+<p>
+      So tests for one third, <span class="bold"><strong>not</strong></span> exactly representable
+      with radix two floating-point, (should) use, for example:
+    </p>
+<p>
+      <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="number">1</span><span class="special">)</span> <span class="special">/</span>
+      <span class="number">3</span><span class="special">;</span></code>
+    </p>
+<p>
+      If a function is very sensitive to changes in input, specifying an inexact
+      value as input (such as 0.1) can throw the result off by a noticeable amount:
+      0.1f is "wrong" by ~1e-7 for example (because 0.1 has no exact binary
+      representation). That is why exact binary values - halves, quarters, and eighths
+      etc - are used in test code along with the occasional fraction <code class="computeroutput"><span class="identifier">a</span><span class="special">/</span><span class="identifier">b</span></code>
+      with <code class="computeroutput"><span class="identifier">b</span></code> a power of two (in order
+      to ensure that the result is an exactly representable binary value).
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h2"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.tolerance_of_tests"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.tolerance_of_tests">Tolerance
+      of Tests</a>
+    </h5>
+<p>
+      The tolerances need to be set to the maximum of:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Some epsilon value.
+        </li>
+<li class="listitem">
+          The accuracy of the data (often only near 64-bit double).
+        </li>
+</ul></div>
+<p>
+      Otherwise when long double has more digits than the test data, then no amount
+      of tweaking an epsilon based tolerance will work.
+    </p>
+<p>
+      A common problem is when tolerances that are suitable for implementations like
+      Microsoft VS.NET where double and long double are the same size: tests fail
+      on other systems where long double is more accurate than double. Check first
+      that the suffix L is present, and then that the tolerance is big enough.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h3"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.handling_unsuitable_arguments"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.handling_unsuitable_arguments">Handling
+      Unsuitable Arguments</a>
+    </h5>
+<p>
+      In <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1665.pdf" target="_top">Errors
+      in Mathematical Special Functions</a>, J. Marraffino & M. Paterno it
+      is proposed that signalling a domain error is mandatory when the argument would
+      give an mathematically undefined result.
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Guideline 1
+        </li></ul></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        A mathematical function is said to be defined at a point a = (a1, a2, . .
+        .) if the limits as x = (x1, x2, . . .) 'approaches a from all directions
+        agree'. The defined value may be any number, or +infinity, or -infinity.
+      </p></blockquote></div>
+<p>
+      Put crudely, if the function goes to + infinity and then emerges 'round-the-back'
+      with - infinity, it is NOT defined.
+    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        The library function which approximates a mathematical function shall signal
+        a domain error whenever evaluated with argument values for which the mathematical
+        function is undefined.
+      </p></blockquote></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Guideline 2
+        </li></ul></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        The library function which approximates a mathematical function shall signal
+        a domain error whenever evaluated with argument values for which the mathematical
+        function obtains a non-real value.
+      </p></blockquote></div>
+<p>
+      This implementation is believed to follow these proposals and to assist compatibility
+      with <span class="emphasis"><em>ISO/IEC 9899:1999 Programming languages - C</em></span> and with
+      the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
+      Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph
+      5</a>. <a class="link" href="error_handling.html" title="Error Handling">See also domain_error</a>.
+    </p>
+<p>
+      See <a class="link" href="pol_ref.html" title="Policy Reference">policy reference</a> for details
+      of the error handling policies that should allow a user to comply with any
+      of these recommendations, as well as other behaviour.
+    </p>
+<p>
+      See <a class="link" href="error_handling.html" title="Error Handling">error handling</a> for a
+      detailed explanation of the mechanism, and <a class="link" href="stat_tut/weg/error_eg.html" title="Error Handling Example">error_handling
+      example</a> and error_handling_example.cpp
+    </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        If you enable throw but do NOT have try & catch block, then the program
+        will terminate with an uncaught exception and probably abort. Therefore to
+        get the benefit of helpful error messages, enabling <span class="bold"><strong>all</strong></span>
+        exceptions <span class="bold"><strong>and</strong></span> using try&catch is recommended
+        for all applications. However, for simplicity, this is not done for most
+        examples.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.implementation0.h4"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.handling_of_functions_that_are_n"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.handling_of_functions_that_are_n">Handling
+      of Functions that are Not Mathematically defined</a>
+    </h5>
+<p>
+      Functions that are not mathematically defined, like the Cauchy mean, fail to
+      compile by default. A <a class="link" href="pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies">policy</a>
+      allows control of this.
+    </p>
+<p>
+      If the policy is to permit undefined functions, then calling them throws a
+      domain error, by default. But the error policy can be set to not throw, and
+      to return NaN instead. For example,
+    </p>
+<p>
+      <code class="computeroutput"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span>
+      <span class="identifier">ignore_error</span></code>
+    </p>
+<p>
+      appears before the first Boost include, then if the un-implemented function
+      is called, mean(cauchy<>()) will return std::numeric_limits<T>::quiet_NaN().
+    </p>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        If <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">has_quiet_NaN</span></code> is false (for example, if
+        T is a User-defined type without NaN support), then an exception will always
+        be thrown when a domain error occurs. Catching exceptions is therefore strongly
+        recommended.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.implementation0.h5"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.median_of_distributions"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.median_of_distributions">Median
+      of distributions</a>
+    </h5>
+<p>
+      There are many distributions for which we have been unable to find an analytic
+      formula, and this has deterred us from implementing <a href="http://en.wikipedia.org/wiki/Median" target="_top">median
+      functions</a>, the mid-point in a list of values.
+    </p>
+<p>
+      However a useful numerical approximation for distribution <code class="computeroutput"><span class="identifier">dist</span></code>
+      is available as usual as an accessor non-member function median using <code class="computeroutput"><span class="identifier">median</span><span class="special">(</span><span class="identifier">dist</span><span class="special">)</span></code>, that may be evaluated (in the absence of
+      an analytic formula) by calling
+    </p>
+<p>
+      <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">0.5</span><span class="special">)</span></code> (this is the <span class="emphasis"><em>mathematical</em></span>
+      definition of course).
+    </p>
+<p>
+      <a href="http://www.amstat.org/publications/jse/v13n2/vonhippel.html" target="_top">Mean,
+      Median, and Skew, Paul T von Hippel</a>
+    </p>
+<p>
+      <a href="http://documents.wolfram.co.jp/teachersedition/MathematicaBook/24.5.html" target="_top">Descriptive
+      Statistics,</a>
+    </p>
+<p>
+      <a href="http://documents.wolfram.co.jp/v5/Add-onsLinks/StandardPackages/Statistics/DescriptiveStatistics.html" target="_top">and
+      </a>
+    </p>
+<p>
+      <a href="http://documents.wolfram.com/v5/TheMathematicaBook/AdvancedMathematicsInMathematica/NumericalOperationsOnData/3.8.1.html" target="_top">Mathematica
+      Basic Statistics.</a> give more detail, in particular for discrete distributions.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h6"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.handling_of_floating_point_infin"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.handling_of_floating_point_infin">Handling
+      of Floating-Point Infinity</a>
+    </h5>
+<p>
+      Some functions and distributions are well defined with + or - infinity as argument(s),
+      but after some experiments with handling infinite arguments as special cases,
+      we concluded that it was generally more useful to forbid this, and instead
+      to return the result of <a class="link" href="error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+    </p>
+<p>
+      Handling infinity as special cases is additionally complicated because, unlike
+      built-in types on most - but not all - platforms, not all User-Defined Types
+      are specialized to provide <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code> and would return zero rather than any representation
+      of infinity.
+    </p>
+<p>
+      The rationale is that non-finiteness may happen because of error or overflow
+      in the users code, and it will be more helpful for this to be diagnosed promptly
+      rather than just continuing. The code also became much more complicated, more
+      error-prone, much more work to test, and much less readable.
+    </p>
+<p>
+      However in a few cases, for example normal, where we felt it obvious, we have
+      permitted argument(s) to be infinity, provided infinity is implemented for
+      the <code class="computeroutput"><span class="identifier">RealType</span></code> on that implementation,
+      and it is supported and tested by the distribution.
+    </p>
+<p>
+      The range for these distributions is set to infinity if supported by the platform,
+      (by testing <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>::</span><span class="identifier">has_infinity</span></code>) else the maximum value provided
+      for the <code class="computeroutput"><span class="identifier">RealType</span></code> by Boost.Math.
+    </p>
+<p>
+      Testing for has_infinity is obviously important for arbitrary precision types
+      where infinity makes much less sense than for IEEE754 floating-point.
+    </p>
+<p>
+      So far we have not set <code class="computeroutput"><span class="identifier">support</span><span class="special">()</span></code> function (only range) on the grounds that
+      the PDF is uninteresting/zero for infinities.
+    </p>
+<p>
+      Users who require special handling of infinity (or other specific value) can,
+      of course, always intercept this before calling a distribution or function
+      and return their own choice of value, or other behavior. This will often be
+      simpler than trying to handle the aftermath of the error policy.
+    </p>
+<p>
+      Overflow, underflow, denorm can be handled using <a class="link" href="pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+      handling policies</a>.
+    </p>
+<p>
+      We have also tried to catch boundary cases where the mathematical specification
+      would result in divide by zero or overflow and signalling these similarly.
+      What happens at (and near), poles can be controlled through <a class="link" href="pol_ref/error_handling_policies.html" title="Error Handling Policies">error
+      handling policies</a>.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h7"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.scale_shape_and_location"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.scale_shape_and_location">Scale,
+      Shape and Location</a>
+    </h5>
+<p>
+      We considered adding location and scale to the list of functions, for example:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">triangular_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>&</span> <span class="identifier">dist</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="identifier">dist</span><span class="special">.</span><span class="identifier">lower</span><span class="special">();</span>
+  <span class="identifier">RealType</span> <span class="identifier">mode</span> <span class="special">=</span> <span class="identifier">dist</span><span class="special">.</span><span class="identifier">mode</span><span class="special">();</span>
+  <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="identifier">dist</span><span class="special">.</span><span class="identifier">upper</span><span class="special">();</span>
+  <span class="identifier">RealType</span> <span class="identifier">result</span><span class="special">;</span>  <span class="comment">// of checks.</span>
+  <span class="keyword">if</span><span class="special">(</span><span class="keyword">false</span> <span class="special">==</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">check_triangular</span><span class="special">(</span><span class="identifier">BOOST_CURRENT_FUNCTION</span><span class="special">,</span> <span class="identifier">lower</span><span class="special">,</span> <span class="identifier">mode</span><span class="special">,</span> <span class="identifier">upper</span><span class="special">,</span> <span class="special">&</span><span class="identifier">result</span><span class="special">))</span>
+  <span class="special">{</span>
+    <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+  <span class="special">}</span>
+  <span class="keyword">return</span> <span class="special">(</span><span class="identifier">upper</span> <span class="special">-</span> <span class="identifier">lower</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+      but found that these concepts are not defined (or their definition too contentious)
+      for too many distributions to be generally applicable. Because they are non-member
+      functions, they can be added if required.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h8"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.notes_on_implementation_of_speci"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.notes_on_implementation_of_speci">Notes
+      on Implementation of Specific Functions & Distributions</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Default parameters for the Triangular Distribution. We are uncertain about
+          the best default parameters. Some sources suggest that the Standard Triangular
+          Distribution has lower = 0, mode = half and upper = 1. However as a approximation
+          for the normal distribution, the most common usage, lower = -1, mode =
+          0 and upper = 1 would be more suitable.
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.implementation0.h9"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.rational_approximations_used"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.rational_approximations_used">Rational
+      Approximations Used</a>
+    </h5>
+<p>
+      Some of the special functions in this library are implemented via rational
+      approximations. These are either taken from the literature, or devised by John
+      Maddock using <a class="link" href="internals2/minimax.html" title="Minimax Approximations and the Remez Algorithm">our Remez code</a>.
+    </p>
+<p>
+      Rational rather than Polynomial approximations are used to ensure accuracy:
+      polynomial approximations are often wonderful up to a certain level of accuracy,
+      but then quite often fail to provide much greater accuracy no matter how many
+      more terms are added.
+    </p>
+<p>
+      Our own approximations were devised either for added accuracy (to support 128-bit
+      long doubles for example), or because literature methods were unavailable or
+      under non-BSL compatible license. Our Remez code is known to produce good agreement
+      with literature results in fairly simple "toy" cases. All approximations
+      were checked for convergence and to ensure that they were not ill-conditioned
+      (the coefficients can give a theoretically good solution, but the resulting
+      rational function may be un-computable at fixed precision).
+    </p>
+<p>
+      Recomputing using different Remez implementations may well produce differing
+      coefficients: the problem is well known to be ill conditioned in general, and
+      our Remez implementation often found a broad and ill-defined minima for many
+      of these approximations (of course for simple "toy" examples like
+      approximating <code class="computeroutput"><span class="identifier">exp</span></code> the minima
+      is well defined, and the coeffiecents should agree no matter whose Remez implementation
+      is used). This should not in general effect the validity of the approximations:
+      there's good literature supporting the idea that coefficients can be "in
+      error" without necessarily adversely effecting the result. Note that "in
+      error" has a special meaning in this context, see <a href="http://front.math.ucdavis.edu/0101.5042" target="_top">"Approximate
+      construction of rational approximations and the effect of error autocorrection.",
+      Grigori Litvinov, eprint arXiv:math/0101042</a>. Therefore the coefficients
+      still need to be accurately calculated, even if they can be in error compared
+      to the "true" minimax solution.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h10"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.representation_of_mathematical_c"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.representation_of_mathematical_c">Representation
+      of Mathematical Constants</a>
+    </h5>
+<p>
+      A macro BOOST_DEFINE_MATH_CONSTANT in constants.hpp is used to provide high
+      accuracy constants to mathematical functions and distributions, since it is
+      important to provide values uniformly for both built-in float, double and long
+      double types, and for User Defined types in Boost.Multiprecision
+      like cpp_dec_float.
+      and others like NTL::quad_float and NTL::RR.
+    </p>
+<p>
+      To permit calculations in this Math ToolKit and its tests, (and elsewhere)
+      at about 100 decimal digits with NTL::RR type, it is obviously necessary to
+      define constants to this accuracy.
+    </p>
+<p>
+      However, some compilers do not accept decimal digits strings as long as this.
+      So the constant is split into two parts, with the 1st containing at least long
+      double precision, and the 2nd zero if not needed or known. The 3rd part permits
+      an exponent to be provided if necessary (use zero if none) - the other two
+      parameters may only contain decimal digits (and sign and decimal point), and
+      may NOT include an exponent like 1.234E99 (nor a trailing F or L). The second
+      digit string is only used if T is a User-Defined Type, when the constant is
+      converted to a long string literal and lexical_casted to type T. (This is necessary
+      because you can't use a numeric constant since even a long double might not
+      have enough digits).
+    </p>
+<p>
+      For example, pi is defined:
+    </p>
+<pre class="programlisting"><span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">pi</span><span class="special">,</span>
+  <span class="number">3.141592653589793238462643383279502884197169399375105820974944</span><span class="special">,</span>
+  <span class="number">5923078164062862089986280348253421170679821480865132823066470938446095505</span><span class="special">,</span>
+  <span class="number">0</span><span class="special">)</span>
+</pre>
+<p>
+      And used thus:
+    </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">diameter</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">radius</span> <span class="special">=</span> <span class="identifier">diameter</span> <span class="special">*</span> <span class="identifier">pi</span><span class="special"><</span><span class="keyword">double</span><span class="special">>();</span>
+
+<span class="keyword">or</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">>()</span>
+</pre>
+<p>
+      Note that it is necessary (if inconvenient) to specify the type explicitly.
+    </p>
+<p>
+      So you cannot write
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><>();</span>  <span class="comment">// could not deduce template argument for 'T'</span>
+</pre>
+<p>
+      Neither can you write:
+    </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span> <span class="comment">// Context does not allow for disambiguation of overloaded function</span>
+<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">();</span> <span class="comment">// Context does not allow for disambiguation of overloaded function</span>
+</pre>
+<h5>
+<a name="math_toolkit.implementation0.h11"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.thread_safety"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.thread_safety">Thread
+      safety</a>
+    </h5>
+<p>
+      Reporting of error by setting <code class="computeroutput"><span class="identifier">errno</span></code>
+      should be thread-safe already (otherwise none of the std lib math functions
+      would be thread safe?). If you turn on reporting of errors via exceptions,
+      <code class="computeroutput"><span class="identifier">errno</span></code> gets left unused anyway.
+    </p>
+<p>
+      For normal C++ usage, the Boost.Math <code class="computeroutput"><span class="keyword">static</span>
+      <span class="keyword">const</span></code> constants are now thread-safe
+      so for built-in real-number types: <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> are all thread safe.
+    </p>
+<p>
+      For User_defined types, for example, cpp_dec_float,
+      the Boost.Math should also be thread-safe, (thought we are unsure how to rigorously
+      prove this).
+    </p>
+<p>
+      (Thread safety has received attention in the C++11 Standard revision, so hopefully
+      all compilers will do the right thing here at some point.)
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h12"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.sources_of_test_data"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.sources_of_test_data">Sources
+      of Test Data</a>
+    </h5>
+<p>
+      We found a large number of sources of test data. We have assumed that these
+      are <span class="emphasis"><em>"known good"</em></span> if they agree with the results
+      from our test and only consulted other sources for their <span class="emphasis"><em>'vote'</em></span>
+      in the case of serious disagreement. The accuracy, actual and claimed, vary
+      very widely. Only <a href="http://functions.wolfram.com/" target="_top">Wolfram Mathematica
+      functions</a> provided a higher accuracy than C++ double (64-bit floating-point)
+      and was regarded as the most-trusted source by far. The <a href="http://www.r-project.org/" target="_top">The
+      R Project for Statistical Computing</a> provided the widest range of distributions,
+      but the usual Intel X86 distribution uses 64-but doubles, so our use was limited
+      to the 15 to 17 decimal digit accuracy.
+    </p>
+<p>
+      A useful index of sources is: <a href="http://www.sal.hut.fi/Teaching/Resources/ProbStat/table.html" target="_top">Web-oriented
+      Teaching Resources in Probability and Statistics</a>
+    </p>
+<p>
+      Statlet:
+      Is a Javascript application that calculates and plots probability distributions,
+      and provides the most complete range of distributions:
+    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        Bernoulli, Binomial, discrete uniform, geometric, hypergeometric, negative
+        binomial, Poisson, beta, Cauchy-Lorentz, chi-sequared, Erlang, exponential,
+        extreme value, Fisher, gamma, Laplace, logistic, lognormal, normal, Parteo,
+        Student's t, triangular, uniform, and Weibull.
+      </p></blockquote></div>
+<p>
+      It calculates pdf, cdf, survivor, log survivor, hazard, tail areas, & critical
+      values for 5 tail values.
+    </p>
+<p>
+      It is also the only independent source found for the Weibull distribution;
+      unfortunately it appears to suffer from very poor accuracy in areas where the
+      underlying special function is known to be difficult to implement.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h13"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.testing_for_invalid_parameters_t"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.testing_for_invalid_parameters_t">Testing
+      for Invalid Parameters to Functions and Constructors</a>
+    </h5>
+<p>
+      After finding that some 'bad' parameters (like NaN) were not throwing a <code class="computeroutput"><span class="identifier">domain_error</span></code> exception as they should, a
+      function
+    </p>
+<p>
+      <code class="computeroutput"><span class="identifier">check_out_of_range</span></code> (in <code class="computeroutput"><span class="identifier">test_out_of_range</span><span class="special">.</span><span class="identifier">hpp</span></code>) was devised by JM to check (using Boost.Test's
+      BOOST_CHECK_THROW macro) that bad parameters passed to constructors and functions
+      throw <code class="computeroutput"><span class="identifier">domain_error</span></code> exceptions.
+    </p>
+<p>
+      Usage is <code class="computeroutput"><span class="identifier">check_out_of_range</span><span class="special"><</span> <span class="identifier">DistributionType</span>
+      <span class="special">>(</span><span class="identifier">list</span><span class="special">-</span><span class="identifier">of</span><span class="special">-</span><span class="identifier">params</span><span class="special">);</span></code>
+      Where list-of-params is a list of <span class="bold"><strong>valid</strong></span> parameters
+      from which the distribution can be constructed - ie the same number of args
+      are passed to the function, as are passed to the distribution constructor.
+    </p>
+<p>
+      The values of the parameters are not important, but must be <span class="bold"><strong>valid</strong></span>
+      to pass the contructor checks; the default values are suitable, but must be
+      explicitly provided, for example:
+    </p>
+<pre class="programlisting"><span class="identifier">check_out_of_range</span><span class="special"><</span><span class="identifier">extreme_value_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">></span> <span class="special">>(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
+</pre>
+<p>
+      Checks made are:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Infinity or NaN (if available) passed in place of each of the valid params.
+        </li>
+<li class="listitem">
+          Infinity or NaN (if available) as a random variable.
+        </li>
+<li class="listitem">
+          Out-of-range random variable passed to pdf and cdf (ie outside of "range(DistributionType)").
+        </li>
+<li class="listitem">
+          Out-of-range probability passed to quantile function and complement.
+        </li>
+</ul></div>
+<p>
+      but does <span class="bold"><strong>not</strong></span> check finite but out-of-range
+      parameters to the constructor because these are specific to each distribution,
+      for example:
+    </p>
+<pre class="programlisting"><span class="identifier">BOOST_CHECK_THROW</span><span class="special">(</span><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">pareto_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="number">0</span><span class="special">,</span> <span class="number">1</span><span class="special">),</span> <span class="number">0</span><span class="special">),</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">);</span>
+<span class="identifier">BOOST_CHECK_THROW</span><span class="special">(</span><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">pareto_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="number">1</span><span class="special">,</span> <span class="number">0</span><span class="special">),</span> <span class="number">0</span><span class="special">),</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">);</span>
+</pre>
+<p>
+      checks <code class="computeroutput"><span class="identifier">scale</span></code> and <code class="computeroutput"><span class="identifier">shape</span></code> parameters are both > 0 by checking
+      that <code class="computeroutput"><span class="identifier">domain_error</span></code> exception
+      is thrown if either are == 0.
+    </p>
+<p>
+      (Use of <code class="computeroutput"><span class="identifier">check_out_of_range</span></code>
+      function may mean that some previous tests are now redundant).
+    </p>
+<p>
+      It was also noted that if more than one parameter is bad, then only the first
+      detected will be reported by the error message.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h14"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.creating_and_managing_the_equati"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.creating_and_managing_the_equati">Creating
+      and Managing the Equations</a>
+    </h5>
+<p>
+      Equations that fit on a single line can most easily be produced by inline Quickbook
+      code using templates for Unicode Greek and Unicode Math symbols. All Greek
+      letter and small set of Math symbols is available at /boost-path/libs/math/doc/sf_and_dist/html4_symbols.qbk
+    </p>
+<p>
+      Where equations need to use more than one line, real Math editors were used.
+    </p>
+<p>
+      The primary source for the equations is now MathML:
+      see the *.mml files in libs/math/doc/sf_and_dist/equations/.
+    </p>
+<p>
+      These are most easily edited by a GUI editor such as Mathcast,
+      please note that the equation editor supplied with Open Office currently mangles
+      these files and should not currently be used.
+    </p>
+<p>
+      Conversion to SVG was achieved using SVGMath
+      and a command line such as:
+    </p>
+<pre class="programlisting">$for file in *.mml; do
+>/cygdrive/c/Python25/python.exe 'C:\download\open\SVGMath-0.3.1\math2svg.py' \
+>>$file > $(basename $file .mml).svg
+>done
+</pre>
+<p>
+      See also the section on "Using Python to run Inkscape" and "Using
+      inkscape to convert scalable vector SVG files to Portable Network graphic PNG".
+    </p>
+<p>
+      Note that SVGMath requires that the mml files are <span class="bold"><strong>not</strong></span>
+      wrapped in an XHTML XML wrapper - this is added by Mathcast by default - one
+      workaround is to copy an existing mml file and then edit it with Mathcast:
+      the existing format should then be preserved. This is a bug in the XML parser
+      used by SVGMath which the author is aware of.
+    </p>
+<p>
+      If neccessary the XHTML wrapper can be removed with:
+    </p>
+<pre class="programlisting">cat filename | tr -d "\r\n" | sed -e 's/.*\(<math[^>]*>.*</math>\).*/\1/' > newfile</pre>
+<p>
+      Setting up fonts for SVGMath is currently rather tricky, on a Windows XP system
+      JM's font setup is the same as the sample config file provided with SVGMath
+      but with:
+    </p>
+<pre class="programlisting">    <!-- Double-struck -->
+    <mathvariant name="double-struck" family="Mathematica7, Lucida Sans Unicode"/>
+</pre>
+<p>
+      changed to:
+    </p>
+<pre class="programlisting">    <!-- Double-struck -->
+    <mathvariant name="double-struck" family="Lucida Sans Unicode"/>
+</pre>
+<p>
+      Note that unlike the sample config file supplied with SVGMath, this does not
+      make use of the <a href="http://support.wolfram.com/technotes/fonts/windows/latestfonts.html" target="_top">Mathematica
+      7 font</a> as this lacks sufficient Unicode information for it to be used
+      with either SVGMath or XEP "as is".
+    </p>
+<p>
+      Also note that the SVG files in the repository are almost certainly Windows-specific
+      since they reference various Windows Fonts.
+    </p>
+<p>
+      PNG files can be created from the SVGs using Batik
+      and a command such as:
+    </p>
+<pre class="programlisting">java -jar 'C:\download\open\batik-1.7\batik-rasterizer.jar' -dpi 120 *.svg</pre>
+<p>
+      Or using Inkscape (File, Export bitmap, Drawing tab, bitmap size (default size,
+      100 dpi), Filename (default). png)
+    </p>
+<p>
+      or Using Cygwin, a command such as:
+    </p>
+<pre class="programlisting">for file in *.svg; do
+  /cygdrive/c/progra~1/Inkscape/inkscape -d 120 -e $(cygpath -a -w $(basename $file .svg).png) $(cygpath -a -w $file);
+done</pre>
+<p>
+      Currently Inkscape seems to generate the better looking png's.
+    </p>
+<p>
+      The PDF is generated into \pdf\math.pdf using a command from a shell or command
+      window with current directory \math_toolkit\libs\math\doc\sf_and_dist, typically:
+    </p>
+<pre class="programlisting">bjam -a pdf >math_pdf.log</pre>
+<p>
+      Note that XEP will have to be configured to <span class="bold"><strong>use and embed</strong></span>
+      whatever fonts are used by the SVG equations (almost certainly editing the
+      sample xep.xml provided by the XEP installation). If you fail to do this you
+      will get XEP warnings in the log file like
+    </p>
+<pre class="programlisting">[warning]could not find any font family matching "Times New Roman"; replaced by Helvetica</pre>
+<p>
+      (html is the default so it is generated at libs\math\doc\html\index.html using
+      command line >bjam -a > math_toolkit.docs.log).
+    </p>
+<pre class="programlisting"><span class="special"><!--</span> <span class="identifier">Sample</span> <span class="identifier">configuration</span> <span class="keyword">for</span> <span class="identifier">Windows</span> <span class="identifier">TrueType</span> <span class="identifier">fonts</span><span class="special">.</span>  <span class="special">--></span>
+</pre>
+<p>
+      is provided in the xep.xml downloaded, but the Windows TrueType fonts are commented
+      out.
+    </p>
+<p>
+      JM's XEP config file \xep\xep.xml has the following font configuration section
+      added:
+    </p>
+<pre class="programlisting">    <font-group xml:base="file:/C:/Windows/Fonts/" label="Windows TrueType" embed="true" subset="true">
+      <font-family name="Arial">
+        <font><font-data ttf="arial.ttf"/></font>
+        <font style="oblique"><font-data ttf="ariali.ttf"/></font>
+        <font weight="bold"><font-data ttf="arialbd.ttf"/></font>
+        <font weight="bold" style="oblique"><font-data ttf="arialbi.ttf"/></font>
+      </font-family>
+
+      <font-family name="Times New Roman" ligatures="&#xFB01; &#xFB02;">
+        <font><font-data ttf="times.ttf"/></font>
+        <font style="italic"><font-data ttf="timesi.ttf"/></font>
+        <font weight="bold"><font-data ttf="timesbd.ttf"/></font>
+        <font weight="bold" style="italic"><font-data ttf="timesbi.ttf"/></font>
+      </font-family>
+
+      <font-family name="Courier New">
+        <font><font-data ttf="cour.ttf"/></font>
+        <font style="oblique"><font-data ttf="couri.ttf"/></font>
+        <font weight="bold"><font-data ttf="courbd.ttf"/></font>
+        <font weight="bold" style="oblique"><font-data ttf="courbi.ttf"/></font>
+      </font-family>
+
+      <font-family name="Tahoma" embed="true">
+        <font><font-data ttf="tahoma.ttf"/></font>
+        <font weight="bold"><font-data ttf="tahomabd.ttf"/></font>
+      </font-family>
+
+      <font-family name="Verdana" embed="true">
+        <font><font-data ttf="verdana.ttf"/></font>
+        <font style="oblique"><font-data ttf="verdanai.ttf"/></font>
+        <font weight="bold"><font-data ttf="verdanab.ttf"/></font>
+        <font weight="bold" style="oblique"><font-data ttf="verdanaz.ttf"/></font>
+      </font-family>
+
+      <font-family name="Palatino" embed="true" ligatures="&#xFB00; &#xFB01; &#xFB02; &#xFB03; &#xFB04;">
+        <font><font-data ttf="pala.ttf"/></font>
+        <font style="italic"><font-data ttf="palai.ttf"/></font>
+        <font weight="bold"><font-data ttf="palab.ttf"/></font>
+        <font weight="bold" style="italic"><font-data ttf="palabi.ttf"/></font>
+      </font-family>
+
+    <font-family name="Lucida Sans Unicode">
+         <!-- <font><font-data ttf="lsansuni.ttf"><<span class="emphasis"><em>font> -->
+         <!-- actually called l_10646.ttf on Windows 2000 and Vista Sp1 -->
+         <font><font-data ttf="l_10646.ttf"</em></span>></font>
+    </font-family>
+</pre>
+<p>
+      PAB had to alter his because the Lucida Sans Unicode font had a different name.
+      Other changes are very likely to be required if you are not using Windows.
+    </p>
+<p>
+      XZ authored his equations using the venerable Latex, JM converted these to
+      MathML using mxlatex.
+      This process is currently unreliable and required some manual intervention:
+      consequently Latex source is not considered a viable route for the automatic
+      production of SVG versions of equations.
+    </p>
+<p>
+      Equations are embedded in the quickbook source using the <span class="emphasis"><em>equation</em></span>
+      template defined in math.qbk. This outputs Docbook XML that looks like:
+    </p>
+<pre class="programlisting"><inlinemediaobject>
+<imageobject role="html">
+<imagedata fileref="../equations/myfile.png"></imagedata>
+</imageobject>
+<imageobject role="print">
+<imagedata fileref="../equations/myfile.svg"></imagedata>
+</imageobject>
+</inlinemediaobject>
+</pre>
+<p>
+      MathML is not currently present in the Docbook output, or in the generated
+      HTML: this needs further investigation.
+    </p>
+<h5>
+<a name="math_toolkit.implementation0.h15"></a>
+      <span class="phrase"><a name="math_toolkit.implementation0.producing_graphs"></a></span><a class="link" href="implementation0.html#math_toolkit.implementation0.producing_graphs">Producing
+      Graphs</a>
+    </h5>
+<p>
+      Graphs were produced in SVG format and then converted to PNG's using the same
+      process as the equations.
+    </p>
+<p>
+      The programs <code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">doc</span><span class="special">/</span><span class="identifier">sf_and_dist</span><span class="special">/</span><span class="identifier">graphs</span><span class="special">/</span><span class="identifier">dist_graphs</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">doc</span><span class="special">/</span><span class="identifier">sf_and_dist</span><span class="special">/</span><span class="identifier">graphs</span><span class="special">/</span><span class="identifier">sf_graphs</span><span class="special">.</span><span class="ident
ifier">cpp</span></code> generate
+      the SVG's directly using the <a href="http://code.google.com/soc/2007/boost/about.html" target="_top">Google
+      Summer of Code 2007</a> project of Jacob Voytko (whose work so far, considerably
+      enhanced and now reasonably mature and usable, by Paul A. Bristow, is at .\boost-sandbox\SOC\2007\visualization).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../backgrounders.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="relative_error.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Utilities & internals</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">
+<link rel="prev" href="internals_overview.html" title="Overview">
+<link rel="next" href="internals1/series_evaluation.html" title="Series Evaluation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="internals_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals1/series_evaluation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.internals1"></a><a class="link" href="internals1.html" title="Utilities & internals">Utilities & internals</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Series Evaluation</span></dt>
+<dt><span class="section">Continued Fraction Evaluation</span></dt>
+<dt><span class="section"><a href="internals1/rational.html">Polynomial and Rational
+      Function Evaluation</a></span></dt>
+<dt><span class="section"><a href="internals1/roots.html">Root Finding With Derivatives:
+      Newton-Raphson, Halley & Schroeder</a></span></dt>
+<dt><span class="section"><a href="internals1/roots2.html">Root Finding Without
+      Derivatives: Bisection, Bracket and TOMS748</a></span></dt>
+<dt><span class="section"><a href="internals1/minima.html">Locating Function Minima:
+      Brent's algorithm</a></span></dt>
+<dt><span class="section">Tuples</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="internals_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals1/series_evaluation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/cf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/cf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,271 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Continued Fraction Evaluation</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="series_evaluation.html" title="Series Evaluation">
+<link rel="next" href="rational.html" title="Polynomial and Rational Function Evaluation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="series_evaluation.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rational.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_cf">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.cf"></a><a class="link" href="cf.html" title="Continued Fraction Evaluation">Continued Fraction Evaluation</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.cf.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.cf.synopsis"></a></span><a class="link" href="cf.html#math_toolkit.internals1.cf.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">fraction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_b</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_b</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">)</span>
+
+<span class="comment">//</span>
+<span class="comment">// These interfaces are present for legacy reasons, and are now deprecated:</span>
+<span class="comment">//</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_b</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_b</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special"><</span><span class="identifier">Gen</span><span class="special">>::</span><span class="identifier">result_type</span>
+   <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">Gen</span><span class="special">&</span> <span class="identifier">g</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.cf.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.cf.description"></a></span><a class="link" href="cf.html#math_toolkit.internals1.cf.description">Description</a>
+      </h5>
+<p>
+        <a href="http://en.wikipedia.org/wiki/Continued_fraction" target="_top">Continued fractions
+        are a common method of approximation. </a> These functions all evaluate
+        the continued fraction described by the <span class="emphasis"><em>generator</em></span> type
+        argument. The functions with an "_a" suffix evaluate the fraction:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/fraction2.png"></span>
+      </p>
+<p>
+        and those with a "_b" suffix evaluate the fraction:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/fraction1.png"></span>
+      </p>
+<p>
+        This latter form is somewhat more natural in that it corresponds with the
+        usual definition of a continued fraction, but note that the first <span class="emphasis"><em>a</em></span>
+        value returned by the generator is discarded. Further, often the first <span class="emphasis"><em>a</em></span>
+        and <span class="emphasis"><em>b</em></span> values in a continued fraction have different
+        defining equations to the remaining terms, which may make the "_a"
+        suffixed form more appropriate.
+      </p>
+<p>
+        The generator type should be a function object which supports the following
+        operations:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Expression
+                </p>
+              </th>
+<th>
+                <p>
+                  Description
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Gen::result_type
+                </p>
+              </td>
+<td>
+                <p>
+                  The type that is the result of invoking operator(). This can be
+                  either an arithmetic type, or a std::pair<> of arithmetic
+                  types.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  g()
+                </p>
+              </td>
+<td>
+                <p>
+                  Returns an object of type Gen::result_type.
+                </p>
+                <p>
+                  Each time this operator is called then the next pair of <span class="emphasis"><em>a</em></span>
+                  and <span class="emphasis"><em>b</em></span> values is returned. Or, if result_type
+                  is an arithmetic type, then the next <span class="emphasis"><em>b</em></span> value
+                  is returned and all the <span class="emphasis"><em>a</em></span> values are assumed
+                  to 1.
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+        In all the continued fraction evaluation functions the <span class="emphasis"><em>tolerance</em></span>
+        parameter is the precision desired in the result, evaluation of the fraction
+        will continue until the last term evaluated leaves the relative error in
+        the result less than <span class="emphasis"><em>tolerance</em></span>. The deprecated interfaces
+        take a number of digits precision here, internally they just convert this
+        to a tolerance and forward call.
+      </p>
+<p>
+        If the optional <span class="emphasis"><em>max_terms</em></span> parameter is specified then
+        no more than <span class="emphasis"><em>max_terms</em></span> calls to the generator will be
+        made, and on output, <span class="emphasis"><em>max_terms</em></span> will be set to actual
+        number of calls made. This facility is particularly useful when profiling
+        a continued fraction for convergence.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.cf.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.cf.implementation"></a></span><a class="link" href="cf.html#math_toolkit.internals1.cf.implementation">Implementation</a>
+      </h5>
+<p>
+        Internally these algorithms all use the modified Lentz algorithm: refer to
+        Numeric Recipes in C++, W. H. Press et all, chapter 5, (especially 5.2 Evaluation
+        of continued fractions, p 175 - 179) for more information, also Lentz, W.J.
+        1976, Applied Optics, vol. 15, pp. 668-671.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.cf.h3"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.cf.examples"></a></span><a class="link" href="cf.html#math_toolkit.internals1.cf.examples">Examples</a>
+      </h5>
+<p>
+        The <a href="http://en.wikipedia.org/wiki/Golden_ratio" target="_top">golden ratio phi
+        = 1.618033989...</a> can be computed from the simplest continued fraction
+        of all:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/fraction3.png"></span>
+      </p>
+<p>
+        We begin by defining a generator function:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">golden_ratio_fraction</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+   <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()</span>
+   <span class="special">{</span>
+      <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        The golden ratio can then be computed to double precision using:
+      </p>
+<pre class="programlisting"><span class="identifier">continued_fraction_a</span><span class="special">(</span>
+   <span class="identifier">golden_ratio_fraction</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(),</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">());</span>
+</pre>
+<p>
+        It's more usual though to have to define both the <span class="emphasis"><em>a</em></span>'s
+        and the <span class="emphasis"><em>b</em></span>'s when evaluating special functions by continued
+        fractions, for example the tan function is defined by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/fraction4.png"></span>
+      </p>
+<p>
+        So its generator object would look like:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">tan_fraction</span>
+<span class="special">{</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="identifier">tan_fraction</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">v</span><span class="special">)</span>
+      <span class="special">:</span> <span class="identifier">a</span><span class="special">(-</span><span class="identifier">v</span><span class="special">*</span><span class="identifier">v</span><span class="special">),</span> <span class="identifier">b</span><span class="special">(-</span><span class="number">1</span><span class="special">)</span>
+   <span class="special">{}</span>
+
+   <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">result_type</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span><span class="special">()()</span>
+   <span class="special">{</span>
+      <span class="identifier">b</span> <span class="special">+=</span> <span class="number">2</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">);</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Notice that if the continuant is subtracted from the <span class="emphasis"><em>b</em></span>
+        terms, as is the case here, then all the <span class="emphasis"><em>a</em></span> terms returned
+        by the generator will be negative. The tangent function can now be evaluated
+        using:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="identifier">tan_fraction</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">fract</span><span class="special">(</span><span class="identifier">a</span><span class="special">);</span>
+   <span class="keyword">return</span> <span class="identifier">a</span> <span class="special">/</span> <span class="identifier">continued_fraction_b</span><span class="special">(</span><span class="identifier">fract</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Notice that this time we're using the "_b" suffixed version to
+        evaluate the fraction: we're removing the leading <span class="emphasis"><em>a</em></span>
+        term during fraction evaluation as it's different from all the others.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="series_evaluation.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rational.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/minima.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/minima.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Locating Function Minima: Brent's algorithm</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">
+<link rel="next" href="tuples.html" title="Tuples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="roots2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tuples.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_minima">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.minima"></a><a class="link" href="minima.html" title="Locating Function Minima: Brent's algorithm">Locating Function Minima:
+      Brent's algorithm</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.minima.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.minima.synopsis"></a></span><a class="link" href="minima.html#math_toolkit.internals1.minima.synopsis">synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">minima</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">brent_find_minima</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">brent_find_minima</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.minima.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.minima.description"></a></span><a class="link" href="minima.html#math_toolkit.internals1.minima.description">Description</a>
+      </h5>
+<p>
+        These two functions locate the minima of the continuous function <span class="emphasis"><em>f</em></span>
+        using Brent's algorithm. Parameters are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">f</span></dt>
+<dd><p>
+              The function to minimise. The function should be smooth over the range
+              [min,max], with no maxima occurring in that interval.
+            </p></dd>
+<dt><span class="term">min</span></dt>
+<dd><p>
+              The lower endpoint of the range in which to search for the minima.
+            </p></dd>
+<dt><span class="term">max</span></dt>
+<dd><p>
+              The upper endpoint of the range in which to search for the minima.
+            </p></dd>
+<dt><span class="term">bits</span></dt>
+<dd><p>
+              The number of bits precision to which the minima should be found. Note
+              that in principle, the minima can not be located to greater accuracy
+              than the square root of machine epsilon (for 64-bit double, sqrt(1e-16)≅1e-8),
+              therefore if <span class="emphasis"><em>bits</em></span> is set to a value greater than
+              one half of the bits in type T, then the value will be ignored.
+            </p></dd>
+<dt><span class="term">max_iter</span></dt>
+<dd><p>
+              The maximum number of iterations to use in the algorithm, if not provided
+              the algorithm will just keep on going until the minima is found.
+            </p></dd>
+</dl>
+</div>
+<p>
+        <span class="bold"><strong>Returns:</strong></span> a pair containing the value of
+        the abscissa at the minima and the value of f(x) at the minima.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.minima.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.minima.implementation"></a></span><a class="link" href="minima.html#math_toolkit.internals1.minima.implementation">Implementation</a>
+      </h5>
+<p>
+        This is a reasonably faithful implementation of Brent's algorithm, refer
+        to:
+      </p>
+<p>
+        Brent, R.P. 1973, Algorithms for Minimization without Derivatives (Englewood
+        Cliffs, NJ: Prentice-Hall), Chapter 5.
+      </p>
+<p>
+        Numerical Recipes in C, The Art of Scientific Computing, Second Edition,
+        William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P.
+        Flannery. Cambridge University Press. 1988, 1992.
+      </p>
+<p>
+        An algorithm with guaranteed convergence for finding a zero of a function,
+        R. P. Brent, The Computer Journal, Vol 44, 1971.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="roots2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="tuples.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/rational.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/rational.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,222 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Polynomial and Rational Function Evaluation</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="cf.html" title="Continued Fraction Evaluation">
+<link rel="next" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cf.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="roots.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_rational">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.rational"></a><a class="link" href="rational.html" title="Polynomial and Rational Function Evaluation">Polynomial and Rational
+      Function Evaluation</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.rational.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.rational.synopsis"></a></span><a class="link" href="rational.html#math_toolkit.internals1.rational.synopsis">synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">rational</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="comment">// Polynomials:</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+
+<span class="comment">// Even polynomials:</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+
+<span class="comment">// Odd polynomials   </span>
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">a</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+
+<span class="comment">// Rational Functions:</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">a</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">b</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</spa
n>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">num</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">*</span> <span class="identifier">denom</span><span class="special">,</span> <span class="identifier">V</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">count</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.rational.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.rational.description"></a></span><a class="link" href="rational.html#math_toolkit.internals1.rational.description">Description</a>
+      </h5>
+<p>
+        Each of the functions come in three variants: a pair of overloaded functions
+        where the order of the polynomial or rational function is evaluated at compile
+        time, and an overload that accepts a runtime variable for the size of the
+        coefficient array. Generally speaking, compile time evaluation of the array
+        size results in better type safety, is less prone to programmer errors, and
+        may result in better optimised code. The polynomial evaluation functions
+        in particular, are specialised for various array sizes, allowing for loop
+        unrolling, and one hopes, optimal inline expansion.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+</pre>
+<p>
+        Evaluates the polynomial
+        described by the coefficients stored in <span class="emphasis"><em>poly</em></span>.
+      </p>
+<p>
+        If the size of the array is specified at runtime, then the polynomial most
+        have order <span class="emphasis"><em>count-1</em></span> with <span class="emphasis"><em>count</em></span> coefficients.
+        Otherwise it has order <span class="emphasis"><em>N-1</em></span> with <span class="emphasis"><em>N</em></span>
+        coefficients.
+      </p>
+<p>
+        Coefficients should be stored such that the coefficients for the x<sup>i </sup> terms
+        are in poly[i].
+      </p>
+<p>
+        The types of the coefficients and of variable <span class="emphasis"><em>z</em></span> may
+        differ as long as <span class="emphasis"><em>*poly</em></span> is convertible to type <span class="emphasis"><em>U</em></span>.
+        This allows, for example, for the coefficient table to be a table of integers
+        if this is appropriate.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">poly</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+</pre>
+<p>
+        As above, but evaluates an even polynomial: one where all the powers of
+        <span class="emphasis"><em>z</em></span> are even numbers. Equivalent to calling <code class="computeroutput"><span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="identifier">poly</span><span class="special">,</span> <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">count</span><span class="special">)</span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">a</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">poly</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">count</span><span class="special">);</span>
+</pre>
+<p>
+        As above but evaluates a polynomial where all the powers are odd numbers.
+        Equivalent to <code class="computeroutput"><span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="identifier">poly</span><span class="special">+</span><span class="number">1</span><span class="special">,</span> <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">,</span>
+        <span class="identifier">count</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span>
+        <span class="identifier">z</span> <span class="special">+</span> <span class="identifier">poly</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">(&</span><span class="identifier">denom</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">num</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">U</span><span class="special">,</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">denom</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">z</span><span class="special">)
;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">num</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">*</span> <span class="identifier">denom</span><span class="special">,</span> <span class="identifier">V</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">count</span><span class="special">);</span>
+</pre>
+<p>
+        Evaluates the rational function (the ratio of two polynomials) described
+        by the coefficients stored in <span class="emphasis"><em>num</em></span> and <span class="emphasis"><em>demom</em></span>.
+      </p>
+<p>
+        If the size of the array is specified at runtime then both polynomials most
+        have order <span class="emphasis"><em>count-1</em></span> with <span class="emphasis"><em>count</em></span> coefficients.
+        Otherwise both polynomials have order <span class="emphasis"><em>N-1</em></span> with <span class="emphasis"><em>N</em></span>
+        coefficients.
+      </p>
+<p>
+        Array <span class="emphasis"><em>num</em></span> describes the numerator, and <span class="emphasis"><em>demon</em></span>
+        the denominator.
+      </p>
+<p>
+        Coefficients should be stored such that the coefficients for the x<sup>i </sup> terms
+        are in num[i] and denom[i].
+      </p>
+<p>
+        The types of the coefficients and of variable <span class="emphasis"><em>v</em></span> may
+        differ as long as <span class="emphasis"><em>*num</em></span> and <span class="emphasis"><em>*denom</em></span>
+        are convertible to type <span class="emphasis"><em>V</em></span>. This allows, for example,
+        for one or both of the coefficient tables to be a table of integers if this
+        is appropriate.
+      </p>
+<p>
+        These functions are designed to safely evaluate the result, even when the
+        value <span class="emphasis"><em>z</em></span> is very large. As such they do not take advantage
+        of compile time array sizes to make any optimisations. These functions are
+        best reserved for situations where <span class="emphasis"><em>z</em></span> may be large: if
+        you can be sure that numerical overflow will not occur then polynomial evaluation
+        with compile-time array sizes may offer slightly better performance.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.rational.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.rational.implementation"></a></span><a class="link" href="rational.html#math_toolkit.internals1.rational.implementation">Implementation</a>
+      </h5>
+<p>
+        Polynomials are evaluated by <a href="http://en.wikipedia.org/wiki/Horner_algorithm" target="_top">Horners
+        method</a>. If the array size is known at compile time then the functions
+        dispatch to size-specific implementations that unroll the evaluation loop.
+      </p>
+<p>
+        Rational evaluation is by <a href="http://en.wikipedia.org/wiki/Horner_algorithm" target="_top">Horners
+        method</a>: with the two polynomials being evaluated in parallel to make
+        the most of the processors floating-point pipeline. If <span class="emphasis"><em>v</em></span>
+        is greater than one, then the polynomials are evaluated in reverse order
+        as polynomials in <span class="emphasis"><em>1/v</em></span>: this avoids unnecessary numerical
+        overflow when the coefficients are large.
+      </p>
+<p>
+        Both the polynomial and rational function evaluation algorithms can be tuned
+        using various configuration macros to provide optimal performance for a particular
+        combination of compiler and platform. This includes support for second-order
+        Horner's methods. The various options are <a class="link" href="../tuning.html" title="Performance Tuning Macros">documented
+        here</a>. However, the performance benefits to be gained from these are
+        marginal on most current hardware, consequently it's best to run the <a class="link" href="../perf_test_app.html" title="The Performance Test Application">performance test application</a>
+        before changing the default settings.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cf.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="roots.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,407 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="rational.html" title="Polynomial and Rational Function Evaluation">
+<link rel="next" href="roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="rational.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="roots2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_roots">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.roots"></a><a class="link" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder">Root Finding With Derivatives:
+      Newton-Raphson, Halley & Schroeder</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.roots.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.synopsis"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">newton_raphson_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">newton_raphson_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">halley_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">halley_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">schroeder_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">schroeder_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.roots.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.description"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.description">Description</a>
+      </h5>
+<p>
+        These functions all perform iterative root finding using derivatives:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">newton_raphson_iterate</span></code>
+            performs second order <a class="link" href="roots.html#math_toolkit.internals1.roots.newton">Newton-Raphson
+            iteration</a>,
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">halley_iterate</span></code> and<code class="computeroutput"><span class="identifier">schroeder_iterate</span></code> perform third order
+            <a class="link" href="roots.html#math_toolkit.internals1.roots.halley">Halley</a> and
+            <a class="link" href="roots.html#math_toolkit.internals1.roots.schroeder">Schroeder</a>
+            iteration.
+          </li>
+</ul></div>
+<p>
+        The functions all take the same parameters:
+      </p>
+<div class="variablelist">
+<p class="title"><b>Parameters of the root finding functions</b></p>
+<dl class="variablelist">
+<dt><span class="term">F f</span></dt>
+<dd>
+<p>
+              Type F must be a callable function object that accepts one parameter
+              and returns a <a class="link" href="tuples.html" title="Tuples">boost::math::tuple</a>:
+            </p>
+<p>
+              For the second order iterative methods (<a href="http://en.wikipedia.org/wiki/Newton_Raphson" target="_top">Newton
+              Raphson</a>) the <a class="link" href="tuples.html" title="Tuples">boost::math::tuple</a>
+              should have <span class="bold"><strong>two</strong></span> elements containing
+              the evaluation of the function and its first derivative.
+            </p>
+<p>
+              For the third order methods (Halley
+              and Schroeder) the <a class="link" href="tuples.html" title="Tuples">boost::math::tuple</a>
+              should have <span class="bold"><strong>three</strong></span> elements containing
+              the evaluation of the function and its first and second derivatives.
+            </p>
+</dd>
+<dt><span class="term">T guess</span></dt>
+<dd><p>
+              The initial starting value. A good guess is crucial to quick convergence!
+            </p></dd>
+<dt><span class="term">T min</span></dt>
+<dd><p>
+              The minimum possible value for the result, this is used as an initial
+              lower bracket.
+            </p></dd>
+<dt><span class="term">T max</span></dt>
+<dd><p>
+              The maximum possible value for the result, this is used as an initial
+              upper bracket.
+            </p></dd>
+<dt><span class="term">int digits</span></dt>
+<dd><p>
+              The desired number of binary digits.
+            </p></dd>
+<dt><span class="term">uintmax_t max_iter</span></dt>
+<dd><p>
+              An optional maximum number of iterations to perform.
+            </p></dd>
+</dl>
+</div>
+<p>
+        When using these functions you should note that:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Default max_iter = <code class="computeroutput"><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">>::</span><span class="identifier">max</span><span class="special">)()</span></code> is effectively 'iterate for ever'!.
+          </li>
+<li class="listitem">
+            They may be very sensitive to the initial guess, typically they converge
+            very rapidly if the initial guess has two or three decimal digits correct.
+            However convergence can be no better than bisection, or in some rare
+            cases, even worse than bisection if the initial guess is a long way from
+            the correct value and the derivatives are close to zero.
+          </li>
+<li class="listitem">
+            These functions include special cases to handle zero first (and second
+            where appropriate) derivatives, and fall back to bisection in this case.
+            However, it is helpful if functor F is defined to return an arbitrarily
+            small value <span class="emphasis"><em>of the correct sign</em></span> rather than zero.
+          </li>
+<li class="listitem">
+            If the derivative at the current best guess for the result is infinite
+            (or very close to being infinite) then these functions may terminate
+            prematurely. A large first derivative leads to a very small next step,
+            triggering the termination condition. Derivative based iteration may
+            not be appropriate in such cases.
+          </li>
+<li class="listitem">
+            If the function is 'Really Well Behaved' (monotonic and has only one
+            root) the bracket bounds min and max may as well be set to the widest
+            limits like zero and <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>.
+          </li>
+<li class="listitem">
+            But if the function more complex and may have more than one root or a
+            pole, the choice of bounds is protection against jumping out to seek
+            the 'wrong' root.
+          </li>
+<li class="listitem">
+            These functions fall back to bisection if the next computed step would
+            take the next value out of bounds. The bounds are updated after each
+            step to ensure this leads to convergence. However, a good initial guess
+            backed up by asymptotically-tight bounds will improve performance no
+            end - rather than relying on bisection.
+          </li>
+<li class="listitem">
+            The value of <span class="emphasis"><em>digits</em></span> is crucial to good performance
+            of these functions, if it is set too high then at best you will get one
+            extra (unnecessary) iteration, and at worst the last few steps will proceed
+            by bisection. Remember that the returned value can never be more accurate
+            than f(x) can be evaluated, and that if f(x) suffers from cancellation
+            errors as it tends to zero then the computed steps will be effectively
+            random. The value of <span class="emphasis"><em>digits</em></span> should be set so that
+            iteration terminates before this point: remember that for second and
+            third order methods the number of correct digits in the result is increasing
+            quite substantially with each iteration, <span class="emphasis"><em>digits</em></span>
+            should be set by experiment so that the final iteration just takes the
+            next value into the zone where f(x) becomes inaccurate.
+          </li>
+<li class="listitem">
+            To get the binary digits of accuracy, use policies::get_max_root_iterations<Policy>()).
+          </li>
+<li class="listitem">
+            If you need some diagnostic output to see what is going on, you can
+            <code class="computeroutput"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_INSTRUMENT</span></code>
+            before the <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>, and also ensure that display of
+            all the possibly significant digits with <code class="computeroutput"> <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">max_digits10</span><span class="special">)</span></code>: but be warned, this may produce copious
+            output!
+          </li>
+<li class="listitem">
+            Finally: you may well be able to do better than these functions by hand-coding
+            the heuristics used so that they are tailored to a specific function.
+            You may also be able to compute the ratio of derivatives used by these
+            methods more efficiently than computing the derivatives themselves. As
+            ever, algebraic simplification can be a big win.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.internals1.roots.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.newton"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.newton">Newton
+        Raphson Method</a>
+      </h5>
+<p>
+        Given an initial guess x0 the subsequent values are computed using:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/roots1.png"></span>
+      </p>
+<p>
+        Out of bounds steps revert to bisection of the current bounds.
+      </p>
+<p>
+        Under ideal conditions, the number of correct digits doubles with each iteration.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.roots.h3"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.halley"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.halley">Halley's
+        Method</a>
+      </h5>
+<p>
+        Given an initial guess x0 the subsequent values are computed using:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/roots2.png"></span>
+      </p>
+<p>
+        Over-compensation by the second derivative (one which would proceed in the
+        wrong direction) causes the method to revert to a Newton-Raphson step.
+      </p>
+<p>
+        Out of bounds steps revert to bisection of the current bounds.
+      </p>
+<p>
+        Under ideal conditions, the number of correct digits trebles with each iteration.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.roots.h4"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.schroeder"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.schroeder">Schroeder's
+        Method</a>
+      </h5>
+<p>
+        Given an initial guess x0 the subsequent values are computed using:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/roots3.png"></span>
+      </p>
+<p>
+        Over-compensation by the second derivative (one which would proceed in the
+        wrong direction) causes the method to revert to a Newton-Raphson step. Likewise
+        a Newton step is used whenever that Newton step would change the next value
+        by more than 10%.
+      </p>
+<p>
+        Out of bounds steps revert to bisection of the current bounds.
+      </p>
+<p>
+        Under ideal conditions, the number of correct digits trebles with each iteration.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.roots.h5"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots.example"></a></span><a class="link" href="roots.html#math_toolkit.internals1.roots.example">Example</a>
+      </h5>
+<p>
+        Let's suppose we want to find the cube root of a number: the equation we
+        want to solve along with its derivatives are:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/roots4.png"></span>
+      </p>
+<p>
+        To begin with lets solve the problem using Newton-Raphson iterations, we'll
+        begin by defining a function object (functor) that returns the evaluation
+        of the function to solve, along with its first derivative f'(x):
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">cbrt_functor</span>
+<span class="special">{</span>
+   <span class="identifier">cbrt_functor</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">a</span><span class="special">(</span><span class="identifier">target</span><span class="special">)</span>
+   <span class="special">{</span> <span class="comment">// Constructor stores value to be 'cube-rooted'.</span>
+   <span class="special">}</span>
+   <a class="link" href="tuples.html" title="Tuples">boost::math::tuple</a><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">z</span><span class="special">)</span>
+   <span class="special">{</span> <span class="comment">// z is estimate so far.</span>
+      <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span>
+      <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">a</span><span class="special">,</span> <span class="comment">// return both f(x)</span>
+      <span class="number">3</span> <span class="special">*</span> <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">);</span>  <span class="comment">// and f'(x)</span>
+   <span class="special">}</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="identifier">T</span> <span class="identifier">a</span><span class="special">;</span> <span class="comment">// to be 'cube-rooted'.</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Implementing the cube root is fairly trivial now, the hardest part is finding
+        a good approximation to begin with: in this case we'll just divide the exponent
+        by three:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span> <span class="comment">// for frexp, ldexp, numeric_limits.</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+
+   <span class="keyword">int</span> <span class="identifier">exp</span><span class="special">;</span>
+   <span class="identifier">frexp</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="special">&</span><span class="identifier">exp</span><span class="special">);</span> <span class="comment">// Get exponent of z (ignore mantissa).</span>
+   <span class="identifier">T</span> <span class="identifier">min</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">0.5</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span>
+   <span class="identifier">T</span> <span class="identifier">max</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span>
+   <span class="identifier">T</span> <span class="identifier">guess</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span> <span class="comment">// Rough guess is to divide the exponent by three.</span>
+   <span class="keyword">int</span> <span class="identifier">digits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span><span class="special">;</span> <span class="comment">// Maximum possible binary digits accuracy for type T.</span>
+   <span class="keyword">return</span> <span class="identifier">newton_raphson_iterate</span><span class="special">(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">cbrt_functor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">z</span><span class="special">),</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">,</span> <span class="identifier">digits</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Using the test data in <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">cbrt_test</span><span class="special">.</span><span class="identifier">cpp</span></code> this
+        found the cube root exact to the last digit in every case, and in no more
+        than 6 iterations at double precision. However, you will note that a high
+        precision was used in this example, exactly what was warned against earlier
+        on in these docs! In this particular case it is possible to compute f(x)
+        exactly and without undue cancellation error, so a high limit is not too
+        much of an issue. However, reducing the limit to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span> <span class="special">*</span> <span class="number">2</span> <span class="special">/</span> <span class="number">3</span></code>
+        gave full precision in all but one of the test cases (and that one was out
+        by just one bit). The maximum number of iterations remained 6, but in most
+        cases was reduced by one.
+      </p>
+<p>
+        Note also that the above code omits a probably optimization by computing
+        z², and reusing it, omits error handling, and does not handle negative values
+        of z correctly. (These are left as an exercise for the reader!)
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cbrt</span></code> function also includes these and other
+        improvements.
+      </p>
+<p>
+        Now let's adapt the functor slightly to return the second derivative as well:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">cbrt_functor</span>
+<span class="special">{</span>
+   <span class="identifier">cbrt_functor</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">a</span><span class="special">(</span><span class="identifier">target</span><span class="special">){}</span>
+   <a class="link" href="tuples.html" title="Tuples">boost::math::tuple</a><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">z</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span>
+      <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="number">3</span> <span class="special">*</span> <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">,</span>
+      <span class="number">6</span> <span class="special">*</span> <span class="identifier">z</span><span class="special">);</span>
+   <span class="special">}</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="identifier">T</span> <span class="identifier">a</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        And then adapt the <code class="computeroutput"><span class="identifier">cbrt</span></code> function
+        to use Halley iterations:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+
+   <span class="keyword">int</span> <span class="identifier">exp</span><span class="special">;</span>
+   <span class="identifier">frexp</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="special">&</span><span class="identifier">exp</span><span class="special">);</span>
+   <span class="identifier">T</span> <span class="identifier">min</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">0.5</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span>
+   <span class="identifier">T</span> <span class="identifier">max</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span>
+   <span class="identifier">T</span> <span class="identifier">guess</span> <span class="special">=</span> <span class="identifier">ldexp</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="identifier">exp</span><span class="special">/</span><span class="number">3</span><span class="special">);</span>
+   <span class="keyword">int</span> <span class="identifier">digits</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span> <span class="special">/</span> <span class="number">2</span><span class="special">;</span>
+   <span class="keyword">return</span> <span class="identifier">halley_iterate</span><span class="special">(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">cbrt_functor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">z</span><span class="special">),</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">,</span> <span class="identifier">digits</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Note that the iterations are set to stop at just one-half of full precision,
+        and yet, even so, not one of the test cases had a single bit wrong. What's
+        more, the maximum number of iterations was now just 4.
+      </p>
+<p>
+        Just to complete the picture, we could have called <code class="computeroutput"><span class="identifier">schroeder_iterate</span></code>
+        in the last example: and in fact it makes no difference to the accuracy or
+        number of iterations in this particular case. However, the relative performance
+        of these two methods may vary depending upon the nature of f(x), and the
+        accuracy to which the initial guess can be computed. There appear to be no
+        generalisations that can be made except "try them and see".
+      </p>
+<p>
+        Finally, had we called <code class="computeroutput"><span class="identifier">cbrt</span></code>
+        with NTL::RR set to
+        1000 bit precision, then full precision can be obtained with just 7 iterations.
+        To put that in perspective, an increase in precision by a factor of 20, has
+        less than doubled the number of iterations. That just goes to emphasise that
+        most of the iterations are used up getting the first few digits correct:
+        after that these methods can churn out further digits with remarkable efficiency.
+      </p>
+<p>
+        Or to put it another way: <span class="emphasis"><em>nothing beats a really good initial guess!</em></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rational.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="roots2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/roots2.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,576 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Root Finding Without Derivatives: Bisection, Bracket and TOMS748</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder">
+<link rel="next" href="minima.html" title="Locating Function Minima: Brent's algorithm">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="roots.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="minima.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_roots2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.roots2"></a><a class="link" href="roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">Root Finding Without
+      Derivatives: Bisection, Bracket and TOMS748</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.roots2.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.synopsis"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<span class="comment">// Bisection</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+     <span class="comment">// Bracket and Solve Root</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bracket_and_solve_root</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">guess</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">factor</span><span class="special">,</span>
+      <span class="keyword">bool</span> <span class="identifier">rising</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bracket_and_solve_root</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">guess</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">factor</span><span class="special">,</span>
+      <span class="keyword">bool</span> <span class="identifier">rising</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+ <span class="comment">// TOMS 748 algorithm</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fa</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fb</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fa</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fb</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="comment">// Termination conditions:</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">eps_tolerance</span><span class="special">;</span>
+
+<span class="keyword">struct</span> <span class="identifier">equal_floor</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">equal_ceil</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">equal_nearest_integer</span><span class="special">;</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.roots2.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.description"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.description">Description</a>
+      </h5>
+<p>
+        These functions solve the root of some function <span class="emphasis"><em>f(x)</em></span>
+        <span class="emphasis"><em>without the need for any derivatives of <span class="emphasis"><em>f(x)</em></span></em></span>.
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">bracket_and_solve_root</span></code>
+        functions use TOMS Algorithm 748 that is asymptotically the most efficient
+        known, and have been shown to be optimal for a certain classes of smooth
+        functions. Variants with and without __policies are provided.
+      </p>
+<p>
+        Alternatively, there is a simple bisection routine which can be useful in
+        its own right in some situations, or alternatively for narrowing down the
+        range containing the root, prior to calling a more advanced algorithm.
+      </p>
+<p>
+        All the algorithms in this section reduce the diameter of the enclosing interval
+        with the same asymptotic efficiency with which they locate the root. This
+        is in contrast to the derivative based methods which may <span class="emphasis"><em>never</em></span>
+        significantly reduce the enclosing interval, even though they rapidly approach
+        the root. This is also in contrast to some other derivative-free methods
+        (for example the methods of <a href="http://en.wikipedia.org/wiki/Brent%27s_method" target="_top">Brent
+        or Dekker)</a> which only reduce the enclosing interval on the final
+        step. Therefore these methods return a std::pair containing the enclosing
+        interval found, and accept a function object specifying the termination condition.
+        Three function objects are provided for ready-made termination conditions:
+        <span class="emphasis"><em>eps_tolerance</em></span> causes termination when the relative error
+        in the enclosing interval is below a certain threshold, while <span class="emphasis"><em>equal_floor</em></span>
+        and <span class="emphasis"><em>equal_ceil</em></span> are useful for certain statistical applications
+        where the result is known to be an integer. Other user-defined termination
+        conditions are likely to be used only rarely, but may be useful in some specific
+        circumstances.
+      </p>
+<h4>
+<a name="math_toolkit.internals1.roots2.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.bisection"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.bisection">Bisection</a>
+      </h4>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bisect</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span>
+      <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        These functions locate the root using bisection: function arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">f</span></dt>
+<dd><p>
+              A unary functor which is the function whose root is to be found.
+            </p></dd>
+<dt><span class="term">min</span></dt>
+<dd><p>
+              The left bracket of the interval known to contain the root.
+            </p></dd>
+<dt><span class="term">max</span></dt>
+<dd><p>
+              The right bracket of the interval known to contain the root. It is
+              a precondition that <span class="emphasis"><em>min < max</em></span> and <span class="emphasis"><em>f(min)*f(max)
+              <= 0</em></span>, the function signals evaluation error if these
+              preconditions are violated. The action taken is controlled by the evaluation
+              error policy. A best guess may be returned, perhaps significantly wrong.
+            </p></dd>
+<dt><span class="term">tol</span></dt>
+<dd><p>
+              A binary functor that specifies the termination condition: the function
+              will return the current brackets enclosing the root when <span class="emphasis"><em>tol(min,max)</em></span>
+              becomes true.
+            </p></dd>
+<dt><span class="term">max_iter</span></dt>
+<dd><p>
+              The maximum number of invocations of <span class="emphasis"><em>f(x)</em></span> to make
+              while searching for the root.
+            </p></dd>
+</dl>
+</div>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket the root so
+        that:
+      </p>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special"><=</span> <span class="number">0</span>
+</pre>
+<p>
+        and either
+      </p>
+<pre class="programlisting"><span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
+</pre>
+<p>
+        or
+      </p>
+<pre class="programlisting"><span class="identifier">max_iter</span> <span class="special">>=</span> <span class="identifier">m</span>
+</pre>
+<p>
+        where <span class="emphasis"><em>m</em></span> is the initial value of <span class="emphasis"><em>max_iter</em></span>
+        passed to the function.
+      </p>
+<p>
+        In other words, it's up to the caller to verify whether termination occurred
+        as a result of exceeding <span class="emphasis"><em>max_iter</em></span> function invocations
+        (easily done by checking the updated value of <span class="emphasis"><em>max_iter</em></span>
+        when the function returns), rather than because the termination condition
+        <span class="emphasis"><em>tol</em></span> was satisfied.
+      </p>
+<h4>
+<a name="math_toolkit.internals1.roots2.h3"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.bracket_and_solve"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.bracket_and_solve">Bracket
+        and solve</a>
+      </h4>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bracket_and_solve_root</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">guess</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">factor</span><span class="special">,</span>
+      <span class="keyword">bool</span> <span class="identifier">rising</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">bracket_and_solve_root</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">guess</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">factor</span><span class="special">,</span>
+      <span class="keyword">bool</span> <span class="identifier">rising</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        This is a convenience function that calls <span class="emphasis"><em>toms748_solve</em></span>
+        internally to find the root of <span class="emphasis"><em>f(x)</em></span>. It's usable only
+        when <span class="emphasis"><em>f(x)</em></span> is a monotonic function, and the location
+        of the root is known approximately, and in particular it is known whether
+        the root is occurs for positive or negative <span class="emphasis"><em>x</em></span>. The parameters
+        are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">f</span></dt>
+<dd><p>
+              A unary functor that is the function whose root is to be solved. f(x)
+              must be uniformly increasing or decreasing on <span class="emphasis"><em>x</em></span>.
+            </p></dd>
+<dt><span class="term">guess</span></dt>
+<dd><p>
+              An initial approximation to the root
+            </p></dd>
+<dt><span class="term">factor</span></dt>
+<dd><p>
+              A scaling factor that is used to bracket the root: the value <span class="emphasis"><em>guess</em></span>
+              is multiplied (or divided as appropriate) by <span class="emphasis"><em>factor</em></span>
+              until two values are found that bracket the root. A value such as 2
+              is a typical choice for <span class="emphasis"><em>factor</em></span>.
+            </p></dd>
+<dt><span class="term">rising</span></dt>
+<dd><p>
+              Set to <span class="emphasis"><em>true</em></span> if <span class="emphasis"><em>f(x)</em></span> is rising
+              on <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>false</em></span> if <span class="emphasis"><em>f(x)</em></span>
+              is falling on <span class="emphasis"><em>x</em></span>. This value is used along with
+              the result of <span class="emphasis"><em>f(guess)</em></span> to determine if <span class="emphasis"><em>guess</em></span>
+              is above or below the root.
+            </p></dd>
+<dt><span class="term">tol</span></dt>
+<dd><p>
+              A binary functor that determines the termination condition for the
+              search for the root. <span class="emphasis"><em>tol</em></span> is passed the current
+              brackets at each step, when it returns true then the current brackets
+              are returned as the result.
+            </p></dd>
+<dt><span class="term">max_iter</span></dt>
+<dd><p>
+              The maximum number of function invocations to perform in the search
+              for the root.
+            </p></dd>
+</dl>
+</div>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket the root so
+        that:
+      </p>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special"><=</span> <span class="number">0</span>
+</pre>
+<p>
+        and either
+      </p>
+<pre class="programlisting"><span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
+</pre>
+<p>
+        or
+      </p>
+<pre class="programlisting"><span class="identifier">max_iter</span> <span class="special">>=</span> <span class="identifier">m</span>
+</pre>
+<p>
+        where <span class="emphasis"><em>m</em></span> is the initial value of <span class="emphasis"><em>max_iter</em></span>
+        passed to the function.
+      </p>
+<p>
+        In other words, it's up to the caller to verify whether termination occurred
+        as a result of exceeding <span class="emphasis"><em>max_iter</em></span> function invocations
+        (easily done by checking the value of <span class="emphasis"><em>max_iter</em></span> when
+        the function returns), rather than because the termination condition <span class="emphasis"><em>tol</em></span>
+        was satisfied.
+      </p>
+<h4>
+<a name="math_toolkit.internals1.roots2.h4"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.algorithm_toms_748_alefeld_potra"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.algorithm_toms_748_alefeld_potra">Algorithm
+        TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions</a>
+      </h4>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fa</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fb</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+   <span class="identifier">toms748_solve</span><span class="special">(</span>
+      <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fa</span><span class="special">,</span>
+      <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">fb</span><span class="special">,</span>
+      <span class="identifier">Tol</span> <span class="identifier">tol</span><span class="special">,</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_iter</span><span class="special">,</span>
+      <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        These two functions implement TOMS Algorithm 748: it uses a mixture of cubic,
+        quadratic and linear (secant) interpolation to locate the root of <span class="emphasis"><em>f(x)</em></span>.
+        The two functions differ only by whether values for <span class="emphasis"><em>f(a)</em></span>
+        and <span class="emphasis"><em>f(b)</em></span> are already available. The toms748_solve parameters
+        are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">f</span></dt>
+<dd><p>
+              A unary functor that is the function whose root is to be solved. f(x)
+              need not be uniformly increasing or decreasing on <span class="emphasis"><em>x</em></span>
+              and may have multiple roots.
+            </p></dd>
+<dt><span class="term">a</span></dt>
+<dd><p>
+              The lower bound for the initial bracket of the root.
+            </p></dd>
+<dt><span class="term">b</span></dt>
+<dd><p>
+              The upper bound for the initial bracket of the root. It is a precondition
+              that <span class="emphasis"><em>a < b</em></span> and that <span class="emphasis"><em>a</em></span>
+              and <span class="emphasis"><em>b</em></span> bracket the root to find so that <span class="emphasis"><em>f(a)*f(b)
+              < 0</em></span>.
+            </p></dd>
+<dt><span class="term">fa</span></dt>
+<dd><p>
+              Optional: the value of <span class="emphasis"><em>f(a)</em></span>.
+            </p></dd>
+<dt><span class="term">fb</span></dt>
+<dd><p>
+              Optional: the value of <span class="emphasis"><em>f(b)</em></span>.
+            </p></dd>
+<dt><span class="term">tol</span></dt>
+<dd><p>
+              A binary functor that determines the termination condition for the
+              search for the root. <span class="emphasis"><em>tol</em></span> is passed the current
+              brackets at each step, when it returns true, then the current brackets
+              are returned as the result.
+            </p></dd>
+<dt><span class="term">max_iter</span></dt>
+<dd><p>
+              The maximum number of function invocations to perform in the search
+              for the root. On exit <span class="emphasis"><em>max_iter</em></span> is set to actual
+              number of function invocations used.
+            </p></dd>
+</dl>
+</div>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        toms748_solve returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket
+        the root so that: f(r.first) * f(r.second) <= 0 and either tol(r.first,
+        r.second) == true or max_iter >= m where <span class="emphasis"><em>m</em></span> is the
+        initial value of <span class="emphasis"><em>max_iter</em></span> passed to the function.
+      </p>
+<p>
+        In other words, it's up to the caller to verify whether termination occurred
+        as a result of exceeding <span class="emphasis"><em>max_iter</em></span> function invocations
+        (easily done by checking the updated value of <span class="emphasis"><em>max_iter</em></span>
+        against its previous value passed as parameter), rather than because the
+        termination condition <span class="emphasis"><em>tol</em></span> was satisfied.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">eps_tolerance</span>
+<span class="special">{</span>
+   <span class="identifier">eps_tolerance</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        <code class="computeroutput"><span class="identifier">eps_tolerance</span></code> is the usual
+        termination condition used with these root finding functions. Its operator()
+        will return true when the relative distance between <span class="emphasis"><em>a</em></span>
+        and <span class="emphasis"><em>b</em></span> is less than twice the machine epsilon for T,
+        or 2<sup>1-bits</sup>, whichever is the larger. In other words, you set <span class="emphasis"><em>bits</em></span>
+        to the number of bits of precision you want in the result. The minimal tolerance
+        of twice the machine epsilon of T is required to ensure that we get back
+        a bracketing interval: since this must clearly be at least 1 epsilon in size.
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_floor</span>
+<span class="special">{</span>
+   <span class="identifier">equal_floor</span><span class="special">();</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        This termination condition is used when you want to find an integer result
+        that is the <span class="emphasis"><em>floor</em></span> of the true root. It will terminate
+        as soon as both ends of the interval have the same <span class="emphasis"><em>floor</em></span>.
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_ceil</span>
+<span class="special">{</span>
+   <span class="identifier">equal_ceil</span><span class="special">();</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        This termination condition is used when you want to find an integer result
+        that is the <span class="emphasis"><em>ceil</em></span> of the true root. It will terminate
+        as soon as both ends of the interval have the same <span class="emphasis"><em>ceil</em></span>.
+      </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_nearest_integer</span>
+<span class="special">{</span>
+   <span class="identifier">equal_nearest_integer</span><span class="special">();</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        This termination condition is used when you want to find an integer result
+        that is the <span class="emphasis"><em>closest</em></span> to the true root. It will terminate
+        as soon as both ends of the interval round to the same nearest integer.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.roots2.h5"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.roots2.implementation"></a></span><a class="link" href="roots2.html#math_toolkit.internals1.roots2.implementation">Implementation</a>
+      </h5>
+<p>
+        The implementation of the bisection algorithm is extremely straightforward
+        and not detailed here. <a href="http://portal.acm.org/citation.cfm?id=210111" target="_top">TOMS
+        Algorithm 748: enclosing zeros of continuous functions</a> is described
+        in detail in:
+      </p>
+<p>
+        <span class="emphasis"><em>Algorithm 748: Enclosing Zeros of Continuous Functions, G. E. Alefeld,
+        F. A. Potra and Yixun Shi, ACM Transactions on Mathematica1 Software, Vol.
+        21. No. 3. September 1995. Pages 327-344.</em></span>
+      </p>
+<p>
+        The implementation here is a faithful translation of this paper into C++.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="roots.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="minima.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/series_evaluation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/series_evaluation.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,187 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Series Evaluation</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="../internals1.html" title="Utilities & internals">
+<link rel="next" href="cf.html" title="Continued Fraction Evaluation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../internals1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_series_evaluation">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.series_evaluation"></a><a class="link" href="series_evaluation.html" title="Series Evaluation">Series Evaluation</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.series_evaluation.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.series_evaluation.synopsis"></a></span><a class="link" href="series_evaluation.html#math_toolkit.internals1.series_evaluation.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">series</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&</span> <span class="identifier">init_value</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">tolerance</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="comment">//</span>
+<span class="comment">// The following interfaces are now deprecated:</span>
+<span class="comment">//   </span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">init_value</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">init_value</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">kahan_sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">kahan_sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&</span> <span class="identifier">max_terms</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.series_evaluation.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.series_evaluation.description"></a></span><a class="link" href="series_evaluation.html#math_toolkit.internals1.series_evaluation.description">Description</a>
+      </h5>
+<p>
+        These algorithms are intended for the <a href="http://en.wikipedia.org/wiki/Series_%28mathematics%29" target="_top">summation
+        of infinite series</a>.
+      </p>
+<p>
+        Each of the algorithms takes a nullary-function object as the first argument:
+        the function object will be repeatedly invoked to pull successive terms from
+        the series being summed.
+      </p>
+<p>
+        The second argument is the precision required, summation will stop when the
+        next term is less than <span class="emphasis"><em>tolerance</em></span> times the result. The
+        deprecated versions of sum_series take an integer number of bits here - internally
+        they just convert this to a tolerance and forward the call.
+      </p>
+<p>
+        The third argument <span class="emphasis"><em>max_terms</em></span> sets an upper limit on
+        the number of terms of the series to evaluate. In addition, on exit the function
+        will set <span class="emphasis"><em>max_terms</em></span> to the actual number of terms of
+        the series that were evaluated: this is particularly useful for profiling
+        the convergence properties of a new series.
+      </p>
+<p>
+        The final optional argument <span class="emphasis"><em>init_value</em></span> is the initial
+        value of the sum to which the terms of the series should be added. This is
+        useful in two situations:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Where the first value of the series has a different formula to successive
+            terms. In this case the first value in the series can be passed as the
+            last argument and the logic of the function object can then be simplified
+            to return subsequent terms.
+          </li>
+<li class="listitem">
+            Where the series is being added (or subtracted) from some other value:
+            termination of the series will likely occur much more rapidly if that
+            other value is passed as the last argument. For example, there are several
+            functions that can be expressed as <span class="emphasis"><em>1 - S(z)</em></span> where
+            S(z) is an infinite series. In this case, pass -1 as the last argument
+            and then negate the result of the summation to get the result of <span class="emphasis"><em>1
+            - S(z)</em></span>.
+          </li>
+</ul></div>
+<p>
+        The two <span class="emphasis"><em>kahan_sum_series</em></span> variants of these algorithms
+        maintain a carry term that corrects for roundoff error during summation.
+        They are inspired by the <a href="http://en.wikipedia.org/wiki/Kahan_Summation_Algorithm" target="_top"><span class="emphasis"><em>Kahan
+        Summation Formula</em></span></a> that appears in <a href="http://docs.sun.com/source/806-3568/ncg_goldberg.html" target="_top">What
+        Every Computer Scientist Should Know About Floating-Point Arithmetic</a>.
+        However, it should be pointed out that there are very few series that require
+        summation in this way.
+      </p>
+<h5>
+<a name="math_toolkit.internals1.series_evaluation.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.series_evaluation.example"></a></span><a class="link" href="series_evaluation.html#math_toolkit.internals1.series_evaluation.example">Example</a>
+      </h5>
+<p>
+        Let's suppose we want to implement <span class="emphasis"><em>log(1+x)</em></span> via its
+        infinite series,
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/log1pseries.png"></span>
+      </p>
+<p>
+        We begin by writing a small function object to return successive terms of
+        the series:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">log1p_series</span>
+<span class="special">{</span>
+   <span class="comment">// we must define a result_type typedef:</span>
+   <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+   <span class="identifier">log1p_series</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">)</span>
+      <span class="special">:</span> <span class="identifier">k</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">m_mult</span><span class="special">(-</span><span class="identifier">x</span><span class="special">),</span> <span class="identifier">m_prod</span><span class="special">(-</span><span class="number">1</span><span class="special">){}</span>
+
+   <span class="identifier">T</span> <span class="keyword">operator</span><span class="special">()()</span>
+   <span class="special">{</span>
+      <span class="comment">// This is the function operator invoked by the summation</span>
+      <span class="comment">// algorithm, the first call to this operator should return</span>
+      <span class="comment">// the first term of the series, the second call the second </span>
+      <span class="comment">// term and so on.</span>
+      <span class="identifier">m_prod</span> <span class="special">*=</span> <span class="identifier">m_mult</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="identifier">m_prod</span> <span class="special">/</span> <span class="special">++</span><span class="identifier">k</span><span class="special">;</span>
+   <span class="special">}</span>
+
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="keyword">int</span> <span class="identifier">k</span><span class="special">;</span>
+   <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">m_mult</span><span class="special">;</span>
+   <span class="identifier">T</span> <span class="identifier">m_prod</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Implementing log(1+x) is now fairly trivial:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">log1p</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// We really should add some error checking on x here!</span>
+   <span class="identifier">assert</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special"><</span> <span class="number">1</span><span class="special">);</span>
+
+   <span class="comment">// Construct the series functor:</span>
+   <span class="identifier">log1p_series</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">s</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+   <span class="comment">// Set a limit on how many iterations we permit:</span>
+   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span> <span class="identifier">max_iter</span> <span class="special">=</span> <span class="number">1000</span><span class="special">;</span>
+   <span class="comment">// Add it up, with enough precision for full machine precision:</span>
+   <span class="keyword">return</span> <span class="identifier">tools</span><span class="special">::</span><span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">(),</span> <span class="identifier">max_iter</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../internals1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals1/tuples.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals1/tuples.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tuples</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals1.html" title="Utilities & internals">
+<link rel="prev" href="minima.html" title="Locating Function Minima: Brent's algorithm">
+<link rel="next" href="../internals2.html" title="Testing and Development">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="minima.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../internals2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals1_tuples">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals1.tuples"></a><a class="link" href="tuples.html" title="Tuples">Tuples</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals1.tuples.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.tuples.synopsis"></a></span><a class="link" href="tuples.html#math_toolkit.internals1.tuples.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<h5>
+<a name="math_toolkit.internals1.tuples.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals1.tuples.description"></a></span><a class="link" href="tuples.html#math_toolkit.internals1.tuples.description">Description</a>
+      </h5>
+<p>
+        This header defines the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tuple</span></code>,
+        the associated free functions <code class="computeroutput"><span class="identifier">ignore</span></code>,
+        <code class="computeroutput"><span class="identifier">tie</span></code>, <code class="computeroutput"><span class="identifier">make_tuple</span></code>,
+        <code class="computeroutput"><span class="identifier">get</span></code>, and associated types
+        <code class="computeroutput"><span class="identifier">tuple_size</span></code> and <code class="computeroutput"><span class="identifier">tuple_element</span></code>.
+      </p>
+<p>
+        These types and functions are aliases for:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            std::tuple etc when available, otherwise:
+          </li>
+<li class="listitem">
+            std::tr1::tuple etc when available, otherwise:
+          </li>
+<li class="listitem">
+            boost::fusion::tuple etc if the compiler supports it, otherwise:
+          </li>
+<li class="listitem">
+            boost::tuple.
+          </li>
+</ul></div>
+<p>
+        So this <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tuple</span></code> is strongly recommended for maximum
+        portability.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="minima.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../internals2.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals2.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Testing and Development</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">
+<link rel="prev" href="internals1/tuples.html" title="Tuples">
+<link rel="next" href="internals2/polynomials.html" title="Polynomials">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="internals1/tuples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals2/polynomials.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals2">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.internals2"></a><a class="link" href="internals2.html" title="Testing and Development">Testing and Development</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Polynomials</span></dt>
+<dt><span class="section"><a href="internals2/minimax.html">Minimax Approximations
+      and the Remez Algorithm</a></span></dt>
+<dt><span class="section"><a href="internals2/error_test.html">Relative Error and
+      Testing</a></span></dt>
+<dt><span class="section"><a href="internals2/test_data.html">Graphing, Profiling,
+      and Generating Test Data for Special Functions</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="internals1/tuples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals2/polynomials.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals2/error_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals2/error_test.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,215 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Relative Error and Testing</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals2.html" title="Testing and Development">
+<link rel="prev" href="minimax.html" title="Minimax Approximations and the Remez Algorithm">
+<link rel="next" href="test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="minimax.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="test_data.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals2_error_test">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals2.error_test"></a><a class="link" href="error_test.html" title="Relative Error and Testing">Relative Error and
+      Testing</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals2.error_test.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.error_test.synopsis"></a></span><a class="link" href="error_test.html#math_toolkit.internals2.error_test.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">relative_error</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F2</span><span class="special">></span>
+<span class="identifier">test_result</span><span class="special"><</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">></span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">test_func</span><span class="special">,</span> <span class="identifier">F2</span> <span class="identifier">expect_func</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals2.error_test.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.error_test.description"></a></span><a class="link" href="error_test.html#math_toolkit.internals2.error_test.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">relative_error</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">v</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the relative error between <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>v</em></span>
+        using the usual formula:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/error1.png"></span>
+      </p>
+<p>
+        In addition the value returned is zero if:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Both <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>v</em></span> are infinite.
+          </li>
+<li class="listitem">
+            Both <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>v</em></span> are denormalised
+            numbers or zero.
+          </li>
+</ul></div>
+<p>
+        Otherwise if only one of <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>v</em></span>
+        is zero then the value returned is 1.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F2</span><span class="special">></span>
+<span class="identifier">test_result</span><span class="special"><</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">></span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">test_func</span><span class="special">,</span> <span class="identifier">F2</span> <span class="identifier">expect_func</span><span class="special">);</span>
+</pre>
+<p>
+        This function is used for testing a function against tabulated test data.
+      </p>
+<p>
+        The return type contains statistical data on the relative errors (max, mean,
+        variance, and the number of test cases etc), as well as the row of test data
+        that caused the largest relative error. Public members of type test_result
+        are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">worst</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the row at which the worst error occurred.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">min</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the smallest relative error found.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">max</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the largest relative error found.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the mean error found.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span> <span class="identifier">count</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the number of test cases.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">variance</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the variance of the errors found.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">variance1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code></span></dt>
+<dd><p>
+              Returns the unbiased variance of the errors found.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span> <span class="identifier">rms</span><span class="special">()</span><span class="keyword">const</span></code></span></dt>
+<dd><p>
+              Returns the Root Mean Square, or quadratic mean of the errors.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">test_result</span><span class="special">&</span>
+          <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">test_result</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span></code></span></dt>
+<dd><p>
+              Combines two test_result's into a single result.
+            </p></dd>
+</dl>
+</div>
+<p>
+        The template parameter of test_result, is the same type as the values in
+        the two dimensional array passed to function <span class="emphasis"><em>test</em></span>, roughly
+        that's <code class="computeroutput"><span class="identifier">A</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">::</span><span class="identifier">value_type</span></code>.
+      </p>
+<p>
+        Parameter <span class="emphasis"><em>a</em></span> is a matrix of test data: and must be a
+        standard library Sequence type, that contains another Sequence type: typically
+        it will be a two dimensional instance of <code class="literal">boost::array</code>.
+        Each row of <span class="emphasis"><em>a</em></span> should contain all the parameters that
+        are passed to the function under test as well as the expected result.
+      </p>
+<p>
+        Parameter <span class="emphasis"><em>test_func</em></span> is the function under test, it is
+        invoked with each row of test data in <span class="emphasis"><em>a</em></span>. Typically type
+        F1 is created with Boost.Lambda: see the example below.
+      </p>
+<p>
+        Parameter <span class="emphasis"><em>expect_func</em></span> is a functor that extracts the
+        expected result from a row of test data in <span class="emphasis"><em>a</em></span>. Typically
+        type F2 is created with Boost.Lambda: see the example below.
+      </p>
+<p>
+        If the function under test returns a non-finite value when a finite result
+        is expected, or if a gross error is found, then a message is sent to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span></code>,
+        and a call to BOOST_ERROR() made (which means that including this header
+        requires you use Boost.Test). This is mainly a debugging/development aid
+        (and a good place for a breakpoint).
+      </p>
+<h5>
+<a name="math_toolkit.internals2.error_test.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.error_test.example"></a></span><a class="link" href="error_test.html#math_toolkit.internals2.error_test.example">Example</a>
+      </h5>
+<p>
+        Suppose we want to test the tgamma and lgamma functions, we can create a
+        two dimensional matrix of test data, each row is one test case, and contains
+        three elements: the input value, and the expected results for the tgamma
+        and lgamma functions respectively.
+      </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">,</span> <span class="number">3</span><span class="special">>,</span> <span class="identifier">NumberOfTests</span><span class="special">></span>
+   <span class="identifier">factorials</span> <span class="special">=</span> <span class="special">{</span>
+      <span class="comment">/* big array of test data goes here */</span>
+   <span class="special">};</span>
+</pre>
+<p>
+        Now we can invoke the test function to test tgamma:
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lambda</span><span class="special">;</span>
+
+<span class="comment">// get a pointer to the function under test:</span>
+<span class="identifier">TestType</span> <span class="special">(*</span><span class="identifier">funcp</span><span class="special">)(</span><span class="identifier">TestType</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="comment">// declare something to hold the result:</span>
+<span class="identifier">test_result</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">></span> <span class="identifier">result</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// and test tgamma against data:</span>
+<span class="comment">//</span>
+<span class="identifier">result</span> <span class="special">=</span> <span class="identifier">test</span><span class="special">(</span>
+   <span class="identifier">factorials</span><span class="special">,</span>
+   <span class="identifier">bind</span><span class="special">(</span><span class="identifier">funcp</span><span class="special">,</span> <span class="identifier">ret</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">>(</span><span class="identifier">_1</span><span class="special">[</span><span class="number">0</span><span class="special">])),</span> <span class="comment">// calls tgamma with factorials[row][0]</span>
+   <span class="identifier">ret</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">>(</span><span class="identifier">_1</span><span class="special">[</span><span class="number">1</span><span class="special">])</span>               <span class="comment">// extracts the expected result from factorials[row][1]</span>
+<span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// Print out some results:</span>
+<span class="comment">//</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The Mean was "</span> <span class="special"><<</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The worst error was "</span> <span class="special"><<</span> <span class="special">(</span><span class="identifier">result</span><span class="special">.</span><span class="identifier">max</span><span class="special">)()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"The worst error was at row "</span> <span class="special"><<</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">worst_case</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// same again with lgamma this time:</span>
+<span class="comment">//</span>
+<span class="identifier">funcp</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">;</span>
+<span class="identifier">result</span> <span class="special">=</span> <span class="identifier">test</span><span class="special">(</span>
+   <span class="identifier">factorials</span><span class="special">,</span>
+   <span class="identifier">bind</span><span class="special">(</span><span class="identifier">funcp</span><span class="special">,</span> <span class="identifier">ret</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">>(</span><span class="identifier">_1</span><span class="special">[</span><span class="number">0</span><span class="special">])),</span> <span class="comment">// calls tgamma with factorials[row][0]</span>
+   <span class="identifier">ret</span><span class="special"><</span><span class="identifier">TestType</span><span class="special">>(</span><span class="identifier">_1</span><span class="special">[</span><span class="number">2</span><span class="special">])</span>               <span class="comment">// extracts the expected result from factorials[row][2]</span>
+<span class="special">);</span>
+<span class="comment">//</span>
+<span class="comment">// etc ...</span>
+<span class="comment">//</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="minimax.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="test_data.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals2/minimax.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals2/minimax.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,273 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Minimax Approximations and the Remez Algorithm</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals2.html" title="Testing and Development">
+<link rel="prev" href="polynomials.html" title="Polynomials">
+<link rel="next" href="error_test.html" title="Relative Error and Testing">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="polynomials.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="error_test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals2_minimax">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals2.minimax"></a><a class="link" href="minimax.html" title="Minimax Approximations and the Remez Algorithm">Minimax Approximations
+      and the Remez Algorithm</a>
+</h3></div></div></div>
+<p>
+        The directory libs/math/minimax contains a command line driven program for
+        the generation of minimax approximations using the Remez algorithm. Both
+        polynomial and rational approximations are supported, although the latter
+        are tricky to converge: it is not uncommon for convergence of rational forms
+        to fail. No such limitations are present for polynomial approximations which
+        should always converge smoothly.
+      </p>
+<p>
+        It's worth stressing that developing rational approximations to functions
+        is often not an easy task, and one to which many books have been devoted.
+        To use this tool, you will need to have a reasonable grasp of what the Remez
+        algorithm is, and the general form of the approximation you want to achieve.
+      </p>
+<p>
+        Unless you already familar with the Remez method, you should first read the
+        <a class="link" href="../remez.html" title="The Remez Method">brief background article explaining the
+        principles behind the Remez algorithm</a>.
+      </p>
+<p>
+        The program consists of two parts:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">main.cpp</span></dt>
+<dd><p>
+              Contains the command line parser, and all the calls to the Remez code.
+            </p></dd>
+<dt><span class="term">f.cpp</span></dt>
+<dd><p>
+              Contains the function to approximate.
+            </p></dd>
+</dl>
+</div>
+<p>
+        Therefore to use this tool, you must modify f.cpp to return the function
+        to approximate. The tools supports multiple function approximations within
+        the same compiled program: each as a separate variant:
+      </p>
+<pre class="programlisting"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">variant</span><span class="special">);</span>
+</pre>
+<p>
+        Returns the value of the function <span class="emphasis"><em>variant</em></span> at point
+        <span class="emphasis"><em>x</em></span>. So if you wish you can just add the function to approximate
+        as a new variant after the existing examples.
+      </p>
+<p>
+        In addition to those two files, the program needs to be linked to a <a class="link" href="../high_precision/use_ntl.html" title="Using NTL Library">patched NTL library to compile</a>.
+      </p>
+<p>
+        Note that the function <span class="emphasis"><em>f</em></span> must return the rational part
+        of the approximation: for example if you are approximating a function <span class="emphasis"><em>f(x)</em></span>
+        then it is quite common to use:
+      </p>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">x</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span>
+</pre>
+<p>
+        where <span class="emphasis"><em>g(x)</em></span> is the dominant part of <span class="emphasis"><em>f(x)</em></span>,
+        <span class="emphasis"><em>Y</em></span> is some constant, and <span class="emphasis"><em>R(x)</em></span> is
+        the rational approximation part, usually optimised for a low absolute error
+        compared to |Y|.
+      </p>
+<p>
+        In this case you would define <span class="emphasis"><em>f</em></span> to return <span class="emphasis"><em>f(x)/g(x)</em></span>
+        and then set the y-offset of the approximation to <span class="emphasis"><em>Y</em></span>
+        (see command line options below).
+      </p>
+<p>
+        Many other forms are possible, but in all cases the objective is to split
+        <span class="emphasis"><em>f(x)</em></span> into a dominant part that you can evaluate easily
+        using standard math functions, and a smooth and slowly changing rational
+        approximation part. Refer to your favourite textbook for more examples.
+      </p>
+<p>
+        Command line options for the program are as follows:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">variant N</span></dt>
+<dd><p>
+              Sets the current function variant to N. This allows multiple functions
+              that are to be approximated to be compiled into the same executable.
+              Defaults to 0.
+            </p></dd>
+<dt><span class="term">range a b</span></dt>
+<dd><p>
+              Sets the domain for the approximation to the range [a,b], defaults
+              to [0,1].
+            </p></dd>
+<dt><span class="term">relative</span></dt>
+<dd><p>
+              Sets the Remez code to optimise for relative error. This is the default
+              at program startup. Note that relative error can only be used if f(x)
+              has no roots over the range being optimised.
+            </p></dd>
+<dt><span class="term">absolute</span></dt>
+<dd><p>
+              Sets the Remez code to optimise for absolute error.
+            </p></dd>
+<dt><span class="term">pin [true|false]</span></dt>
+<dd><p>
+              "Pins" the code so that the rational approximation passes
+              through the origin. Obviously only set this to <span class="emphasis"><em>true</em></span>
+              if R(0) must be zero. This is typically used when trying to preserve
+              a root at [0,0] while also optimising for relative error.
+            </p></dd>
+<dt><span class="term">order N D</span></dt>
+<dd><p>
+              Sets the order of the approximation to <span class="emphasis"><em>N</em></span> in the
+              numerator and <span class="emphasis"><em>D</em></span> in the denominator. If <span class="emphasis"><em>D</em></span>
+              is zero then the result will be a polynomial approximation. There will
+              be N+D+2 coefficients in total, the first coefficient of the numerator
+              is zero if <span class="emphasis"><em>pin</em></span> was set to true, and the first
+              coefficient of the denominator is always one.
+            </p></dd>
+<dt><span class="term">working-precision N</span></dt>
+<dd><p>
+              Sets the working precision of NTL::RR to <span class="emphasis"><em>N</em></span> binary
+              digits. Defaults to 250.
+            </p></dd>
+<dt><span class="term">target-precision N</span></dt>
+<dd><p>
+              Sets the precision of printed output to <span class="emphasis"><em>N</em></span> binary
+              digits: set to the same number of digits as the type that will be used
+              to evaluate the approximation. Defaults to 53 (for double precision).
+            </p></dd>
+<dt><span class="term">skew val</span></dt>
+<dd><p>
+              "Skews" the initial interpolated control points towards one
+              end or the other of the range. Positive values skew the initial control
+              points towards the left hand side of the range, and negative values
+              towards the right hand side. If an approximation won't converge (a
+              common situation) try adjusting the skew parameter until the first
+              step yields the smallest possible error. <span class="emphasis"><em>val</em></span> should
+              be in the range [-100,+100], the default is zero.
+            </p></dd>
+<dt><span class="term">brake val</span></dt>
+<dd><p>
+              Sets a brake on each step so that the change in the control points
+              is braked by <span class="emphasis"><em>val%</em></span>. Defaults to 50, try a higher
+              value if an approximation won't converge, or a lower value to get speedier
+              convergence.
+            </p></dd>
+<dt><span class="term">x-offset val</span></dt>
+<dd><p>
+              Sets the x-offset to <span class="emphasis"><em>val</em></span>: the approximation will
+              be generated for <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">S</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="identifier">X</span><span class="special">))</span> <span class="special">+</span> <span class="identifier">Y</span></code>
+              where <span class="emphasis"><em>X</em></span> is the x-offset, <span class="emphasis"><em>S</em></span>
+              is the x-scale and <span class="emphasis"><em>Y</em></span> is the y-offset. Defaults
+              to zero. To avoid rounding errors, take care to specify a value that
+              can be exactly represented as a floating point number.
+            </p></dd>
+<dt><span class="term">x-scale val</span></dt>
+<dd><p>
+              Sets the x-scale to <span class="emphasis"><em>val</em></span>: the approximation will
+              be generated for <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">S</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="identifier">X</span><span class="special">))</span> <span class="special">+</span> <span class="identifier">Y</span></code>
+              where <span class="emphasis"><em>S</em></span> is the x-scale, <span class="emphasis"><em>X</em></span>
+              is the x-offset and <span class="emphasis"><em>Y</em></span> is the y-offset. Defaults
+              to one. To avoid rounding errors, take care to specify a value that
+              can be exactly represented as a floating point number.
+            </p></dd>
+<dt><span class="term">y-offset val</span></dt>
+<dd><p>
+              Sets the y-offset to <span class="emphasis"><em>val</em></span>: the approximation will
+              be generated for <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">S</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="identifier">X</span><span class="special">))</span> <span class="special">+</span> <span class="identifier">Y</span></code>
+              where <span class="emphasis"><em>X</em></span> is the x-offset, <span class="emphasis"><em>S</em></span>
+              is the x-scale and <span class="emphasis"><em>Y</em></span> is the y-offset. Defaults
+              to zero. To avoid rounding errors, take care to specify a value that
+              can be exactly represented as a floating point number.
+            </p></dd>
+<dt><span class="term">y-offset auto</span></dt>
+<dd><p>
+              Sets the y-offset to the average value of f(x) evaluated at the two
+              endpoints of the range plus the midpoint of the range. The calculated
+              value is deliberately truncated to <span class="emphasis"><em>float</em></span> precision
+              (and should be stored as a <span class="emphasis"><em>float</em></span> in your code).
+              The approximation will be generated for <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span> <span class="special">+</span> <span class="identifier">X</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">Y</span></code> where <span class="emphasis"><em>X</em></span> is
+              the x-offset and <span class="emphasis"><em>Y</em></span> is the y-offset. Defaults to
+              zero.
+            </p></dd>
+<dt><span class="term">graph N</span></dt>
+<dd><p>
+              Prints N evaluations of f(x) at evenly spaced points over the range
+              being optimised. If unspecified then <span class="emphasis"><em>N</em></span> defaults
+              to 3. Use to check that f(x) is indeed smooth over the range of interest.
+            </p></dd>
+<dt><span class="term">step N</span></dt>
+<dd><p>
+              Performs <span class="emphasis"><em>N</em></span> steps, or one step if <span class="emphasis"><em>N</em></span>
+              is unspecified. After each step prints: the peek error at the extrema
+              of the error function of the approximation, the theoretical error term
+              solved for on the last step, and the maximum relative change in the
+              location of the Chebyshev control points. The approximation is converged
+              on the minimax solution when the two error terms are (approximately)
+              equal, and the change in the control points has decreased to a suitably
+              small value.
+            </p></dd>
+<dt><span class="term">test [float|double|long]</span></dt>
+<dd><p>
+              Tests the current approximation at float, double, or long double precision.
+              Useful to check for rounding errors in evaluating the approximation
+              at fixed precision. Tests are conducted at the extrema of the error
+              function of the approximation, and at the zeros of the error function.
+            </p></dd>
+<dt><span class="term">test [float|double|long] N</span></dt>
+<dd><p>
+              Tests the current approximation at float, double, or long double precision.
+              Useful to check for rounding errors in evaluating the approximation
+              at fixed precision. Tests are conducted at N evenly spaced points over
+              the range of the approximation. If none of [float|double|long] are
+              specified then tests using NTL::RR, this can be used to obtain the
+              error function of the approximation.
+            </p></dd>
+<dt><span class="term">rescale a b</span></dt>
+<dd><p>
+              Takes the current Chebeshev control points, and rescales them over
+              a new interval [a,b]. Sometimes this can be used to obtain starting
+              control points for an approximation that can not otherwise be converged.
+            </p></dd>
+<dt><span class="term">rotate</span></dt>
+<dd><p>
+              Moves one term from the numerator to the denominator, but keeps the
+              Chebyshev control points the same. Sometimes this can be used to obtain
+              starting control points for an approximation that can not otherwise
+              be converged.
+            </p></dd>
+<dt><span class="term">info</span></dt>
+<dd><p>
+              Prints out the current approximation: the location of the zeros of
+              the error function, the location of the Chebyshev control points, the
+              x and y offsets, and of course the coefficients of the polynomials.
+            </p></dd>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="polynomials.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="error_test.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals2/polynomials.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals2/polynomials.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Polynomials</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals2.html" title="Testing and Development">
+<link rel="prev" href="../internals2.html" title="Testing and Development">
+<link rel="next" href="minimax.html" title="Minimax Approximations and the Remez Algorithm">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../internals2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="minimax.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals2_polynomials">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals2.polynomials"></a><a class="link" href="polynomials.html" title="Polynomials">Polynomials</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.internals2.polynomials.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.polynomials.synopsis"></a></span><a class="link" href="polynomials.html#math_toolkit.internals2.polynomials.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">polynomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">polynomial</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="comment">// typedefs:</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">size_type</span>  <span class="identifier">size_type</span><span class="special">;</span>
+
+   <span class="comment">// construct:</span>
+   <span class="identifier">polynomial</span><span class="special">(){}</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">*</span> <span class="identifier">data</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">order</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">point</span><span class="special">);</span>
+
+   <span class="comment">// access:</span>
+   <span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">size_type</span> <span class="identifier">degree</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">value_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="identifier">i</span><span class="special">);</span>
+   <span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="comment">// operators:</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">value</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">value</span><span class="special">);</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+   <span class="identifier">polynomial</span><span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">value</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special"><<</span>
+   <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">polynomial</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">poly</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals2.polynomials.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.polynomials.description"></a></span><a class="link" href="polynomials.html#math_toolkit.internals2.polynomials.description">Description</a>
+      </h5>
+<p>
+        This is a fairly trivial class for polynomial manipulation.
+      </p>
+<p>
+        Implementation is currently of the "naive" variety, with O(N^2)
+        multiplication for example. This class should not be used in high-performance
+        computing environments: it is intended for the simple manipulation of small
+        polynomials, typically generated for special function approximation.
+      </p>
+<p>
+        Advanced manipulations: the FFT, division, GCD, factorisation etc are not
+        currently provided. Submissions for these are of course welcome :-)
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../internals2.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="minimax.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals2/test_data.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals2/test_data.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,540 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Graphing, Profiling, and Generating Test Data for Special Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../internals2.html" title="Testing and Development">
+<link rel="prev" href="error_test.html" title="Relative Error and Testing">
+<link rel="next" href="../../using_udt.html" title="Chapter 12. Use with User-Defined Floating-Point Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="error_test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../using_udt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals2_test_data">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.internals2.test_data"></a><a class="link" href="test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">Graphing, Profiling,
+      and Generating Test Data for Special Functions</a>
+</h3></div></div></div>
+<p>
+        The class <code class="computeroutput"><span class="identifier">test_data</span></code> and associated
+        helper functions are designed so that in just a few lines of code you should
+        be able to:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Profile a continued fraction, or infinite series for convergence and
+            accuracy.
+          </li>
+<li class="listitem">
+            Generate csv data from a special function that can be imported into your
+            favorite graphing program (or spreadsheet) for further analysis.
+          </li>
+<li class="listitem">
+            Generate high precision test data.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.internals2.test_data.h0"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.synopsis"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+
+<span class="keyword">enum</span> <span class="identifier">parameter_type</span>
+<span class="special">{</span>
+   <span class="identifier">random_in_range</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span>
+   <span class="identifier">periodic_in_range</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span>
+   <span class="identifier">power_series</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span>
+   <span class="identifier">dummy_param</span> <span class="special">=</span> <span class="number">0x80</span><span class="special">,</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">parameter_info</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_periodic_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_power_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">basis</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">start_exponent</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">end_exponent</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">get_user_parameter_info</span><span class="special">(</span><span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">info</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">param_name</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">test_data</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">row_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">row_type</span> <span class="identifier">value_type</span><span class="special">;</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span><span class="special"><</span><span class="identifier">row_type</span><span class="special">></span> <span class="identifier">container_type</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">reference</span> <span class="identifier">reference</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">const_reference</span> <span class="identifier">const_reference</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">difference_type</span> <span class="identifier">difference_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">container_type</span><span class="special">::</span><span class="identifier">size_type</span> <span class="identifier">size_type</span><span class="special">;</span>
+
+   <span class="comment">// creation:</span>
+   <span class="identifier">test_data</span><span class="special">(){}</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+   <span class="identifier">test_data</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg1</span><span class="special">);</span>
+
+   <span class="comment">// insertion:</span>
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+   <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg1</span><span class="special">);</span>
+
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+   <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg1</span><span class="special">,</span>
+                     <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg2</span><span class="special">);</span>
+
+   <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
+   <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg1</span><span class="special">,</span>
+                     <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg2</span><span class="special">,</span>
+                     <span class="keyword">const</span> <span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">arg3</span><span class="special">);</span>
+
+   <span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+
+   <span class="comment">// access:</span>
+   <span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+   <span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+   <span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">d</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span>
+   <span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">size_type</span> <span class="identifier">max_size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+
+   <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special"><</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">dat</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special"><=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">dat</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">></span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">dat</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">>=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">test_data</span><span class="special">&</span> <span class="identifier">dat</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="identifier">write_csv</span><span class="special">(</span>
+            <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
+            <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">data</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="identifier">write_csv</span><span class="special">(</span>
+            <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">>&</span> <span class="identifier">os</span><span class="special">,</span>
+            <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">data</span><span class="special">,</span>
+            <span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">separator</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">write_code</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="identifier">os</span><span class="special">,</span>
+                         <span class="keyword">const</span> <span class="identifier">test_data</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">data</span><span class="special">,</span>
+                         <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">name</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.internals2.test_data.h1"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.description"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.description">Description</a>
+      </h5>
+<p>
+        This tool is best illustrated with the following series of examples.
+      </p>
+<p>
+        The functionality of test_data is split into the following parts:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            A functor that implements the function for which data is being generated:
+            this is the bit you have to write.
+          </li>
+<li class="listitem">
+            One of more parameters that are to be passed to the functor, these are
+            described in fairly abstract terms: give me N points distributed like
+            <span class="emphasis"><em>this</em></span> etc.
+          </li>
+<li class="listitem">
+            The class test_data, that takes the functor and descriptions of the parameters
+            and computes how ever many output points have been requested, these are
+            stored in a sorted container.
+          </li>
+<li class="listitem">
+            Routines to iterate over the test_data container and output the data
+            in either csv format, or as C++ source code (as a table using Boost.Array).
+          </li>
+</ul></div>
+<h6>
+<a name="math_toolkit.internals2.test_data.h2"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.example_1_output_data_for_graph_"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.example_1_output_data_for_graph_">Example
+        1: Output Data for Graph Plotting</a>
+      </h6>
+<p>
+        For example, lets say we want to graph the lgamma function between -3 and
+        100, one could do this like so:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+
+   <span class="comment">// create an object to hold the data:</span>
+   <span class="identifier">test_data</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">data</span><span class="special">;</span>
+
+   <span class="comment">// insert 500 points at uniform intervals between just after -3 and 100:</span>
+   <span class="keyword">double</span> <span class="special">(*</span><span class="identifier">pf</span><span class="special">)(</span><span class="keyword">double</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">;</span>
+   <span class="identifier">data</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">pf</span><span class="special">,</span> <span class="identifier">make_periodic_param</span><span class="special">(-</span><span class="number">3.0</span> <span class="special">+</span> <span class="number">0.00001</span><span class="special">,</span> <span class="number">100.0</span><span class="special">,</span> <span class="number">500</span><span class="special">));</span>
+
+   <span class="comment">// print out in csv format:</span>
+   <span class="identifier">write_csv</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="identifier">data</span><span class="special">,</span> <span class="string">", "</span><span class="special">);</span>
+   <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which, when plotted, results in:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/lgamma.png" align="middle"></span>
+      </p>
+<h6>
+<a name="math_toolkit.internals2.test_data.h3"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.example_2_creating_test_data"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.example_2_creating_test_data">Example
+        2: Creating Test Data</a>
+      </h6>
+<p>
+        As a second example, let's suppose we want to create highly accurate test
+        data for a special function. Since many special functions have two or more
+        independent parameters, it's very hard to effectively cover all of the possible
+        parameter space without generating gigabytes of data at great computational
+        expense. A second best approach is to provide the tools by which a user (or
+        the library maintainer) can quickly generate more data on demand to probe
+        the function over a particular domain of interest.
+      </p>
+<p>
+        In this example we'll generate test data for the beta function using NTL::RR at 1000 bit precision.
+        Rather than call our generic version of the beta function, we'll implement
+        a deliberately naive version of the beta function using lgamma, and rely
+        on the high precision of the data type used to get results accurate to at
+        least 128-bit precision. In this way our test data is independent of whatever
+        clever tricks we may wish to use inside the our beta function.
+      </p>
+<p>
+        To start with then, here's the function object that creates the test data:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">ntl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">fstream</span><span class="special">></span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+
+<span class="keyword">struct</span> <span class="identifier">beta_data_generator</span>
+<span class="special">{</span>
+   <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">b</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="comment">//</span>
+      <span class="comment">// If we throw a domain error then test_data will</span>
+      <span class="comment">// ignore this input point. We'll use this to filter</span>
+      <span class="comment">// out all cases where a < b since the beta function</span>
+      <span class="comment">// is symmetrical in a and b:</span>
+      <span class="comment">//</span>
+      <span class="keyword">if</span><span class="special">(</span><span class="identifier">a</span> <span class="special"><</span> <span class="identifier">b</span><span class="special">)</span>
+         <span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">(</span><span class="string">""</span><span class="special">);</span>
+
+      <span class="comment">// very naively calculate spots with lgamma:</span>
+      <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">g1</span><span class="special">,</span> <span class="identifier">g2</span><span class="special">,</span> <span class="identifier">g3</span><span class="special">;</span>
+      <span class="keyword">int</span> <span class="identifier">s1</span><span class="special">,</span> <span class="identifier">s2</span><span class="special">,</span> <span class="identifier">s3</span><span class="special">;</span>
+      <span class="identifier">g1</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="special">&</span><span class="identifier">s1</span><span class="special">);</span>
+      <span class="identifier">g2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="special">&</span><span class="identifier">s2</span><span class="special">);</span>
+      <span class="identifier">g3</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">,</span> <span class="special">&</span><span class="identifier">s3</span><span class="special">);</span>
+      <span class="identifier">g1</span> <span class="special">+=</span> <span class="identifier">g2</span> <span class="special">-</span> <span class="identifier">g3</span><span class="special">;</span>
+      <span class="identifier">g1</span> <span class="special">=</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">g1</span><span class="special">);</span>
+      <span class="identifier">g1</span> <span class="special">*=</span> <span class="identifier">s1</span> <span class="special">*</span> <span class="identifier">s2</span> <span class="special">*</span> <span class="identifier">s3</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="identifier">g1</span><span class="special">;</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        To create the data, we'll need to input the domains for a and b for which
+        the function will be tested: the function <code class="computeroutput"><span class="identifier">get_user_parameter_info</span></code>
+        is designed for just that purpose. The start of main will look something
+        like:
+      </p>
+<pre class="programlisting"><span class="comment">// Set the precision on RR:</span>
+<span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">::</span><span class="identifier">SetPrecision</span><span class="special">(</span><span class="number">1000</span><span class="special">);</span> <span class="comment">// bits.</span>
+<span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">::</span><span class="identifier">SetOutputPrecision</span><span class="special">(</span><span class="number">40</span><span class="special">);</span> <span class="comment">// decimal digits.</span>
+
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">></span> <span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">;</span>
+<span class="identifier">test_data</span><span class="special"><</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">></span> <span class="identifier">data</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Welcome.\n"</span>
+   <span class="string">"This program will generate spot tests for the beta function:\n"</span>
+   <span class="string">"  beta(a, b)\n\n"</span><span class="special">;</span>
+
+<span class="keyword">bool</span> <span class="identifier">cont</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">line</span><span class="special">;</span>
+
+<span class="keyword">do</span><span class="special">{</span>
+   <span class="comment">// prompt the user for the domain of a and b to test:</span>
+   <span class="identifier">get_user_parameter_info</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="string">"a"</span><span class="special">);</span>
+   <span class="identifier">get_user_parameter_info</span><span class="special">(</span><span class="identifier">arg2</span><span class="special">,</span> <span class="string">"b"</span><span class="special">);</span>
+
+   <span class="comment">// create the data:</span>
+   <span class="identifier">data</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">beta_data_generator</span><span class="special">(),</span> <span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">);</span>
+
+   <span class="comment">// see if the user want's any more domains tested:</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Any more data [y/n]?"</span><span class="special">;</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">getline</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cin</span><span class="special">,</span> <span class="identifier">line</span><span class="special">);</span>
+   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">trim</span><span class="special">(</span><span class="identifier">line</span><span class="special">);</span>
+   <span class="identifier">cont</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">line</span> <span class="special">==</span> <span class="string">"y"</span><span class="special">);</span>
+<span class="special">}</span><span class="keyword">while</span><span class="special">(</span><span class="identifier">cont</span><span class="special">);</span>
+</pre>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          At this point one potential stumbling block should be mentioned: test_data<>::insert
+          will create a matrix of test data when there are two or more parameters,
+          so if we have two parameters and we're asked for a thousand points on each,
+          that's a <span class="emphasis"><em>million test points in total</em></span>. Don't say you
+          weren't warned!
+        </p></td></tr>
+</table></div>
+<p>
+        There's just one final step now, and that's to write the test data to file:
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Enter name of test data file [default=beta_data.ipp]"</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">getline</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cin</span><span class="special">,</span> <span class="identifier">line</span><span class="special">);</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">trim</span><span class="special">(</span><span class="identifier">line</span><span class="special">);</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">line</span> <span class="special">==</span> <span class="string">""</span><span class="special">)</span>
+   <span class="identifier">line</span> <span class="special">=</span> <span class="string">"beta_data.ipp"</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">ofstream</span> <span class="identifier">ofs</span><span class="special">(</span><span class="identifier">line</span><span class="special">.</span><span class="identifier">c_str</span><span class="special">());</span>
+<span class="identifier">write_code</span><span class="special">(</span><span class="identifier">ofs</span><span class="special">,</span> <span class="identifier">data</span><span class="special">,</span> <span class="string">"beta_data"</span><span class="special">);</span>
+</pre>
+<p>
+        The format of the test data looks something like:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">SC_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">BOOST_JOIN</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">L</span><span class="special">))</span>
+   <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="number">3</span><span class="special">>,</span> <span class="number">1830</span><span class="special">></span>
+   <span class="identifier">beta_med_data</span> <span class="special">=</span> <span class="special">{</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">0.4883005917072296142578125</span><span class="special">),</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">0.4883005917072296142578125</span><span class="special">),</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">3.245912809500479157065104747353807392371</span><span class="special">),</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">3.5808107852935791015625</span><span class="special">),</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">0.4883005917072296142578125</span><span class="special">),</span>
+      <span class="identifier">SC_</span><span class="special">(</span><span class="number">1.007653173802923954909901438393379243537</span><span class="special">),</span>
+      <span class="comment">/* ... lots of rows skipped */</span>
+<span class="special">};</span>
+</pre>
+<p>
+        The first two values in each row are the input parameters that were passed
+        to our functor and the last value is the return value from the functor. Had
+        our functor returned a <a class="link" href="../internals1/tuples.html" title="Tuples">boost::math::tuple</a>
+        rather than a value, then we would have had one entry for each element in
+        the tuple in addition to the input parameters.
+      </p>
+<p>
+        The first #define serves two purposes:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            It reduces the file sizes considerably: all those <code class="computeroutput"><span class="keyword">static_cast</span></code>'s
+            add up to a lot of bytes otherwise (they are needed to suppress compiler
+            warnings when <code class="computeroutput"><span class="identifier">T</span></code> is narrower
+            than a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>).
+          </li>
+<li class="listitem">
+            It provides a useful customisation point: for example if we were testing
+            a user-defined type that has more precision than a <code class="computeroutput"><span class="keyword">long</span>
+            <span class="keyword">double</span></code> we could change it to:
+          </li>
+</ul></div>
+<p>
+        <code class="literal">#define SC_(x) lexical_cast<T>(BOOST_STRINGIZE(x))</code>
+      </p>
+<p>
+        in order to ensure that no truncation of the values occurs prior to conversion
+        to <code class="computeroutput"><span class="identifier">T</span></code>. Note that this isn't
+        used by default as it's rather hard on the compiler when the table is large.
+      </p>
+<h6>
+<a name="math_toolkit.internals2.test_data.h4"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.example_3_profiling_a_continued_"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.example_3_profiling_a_continued_">Example
+        3: Profiling a Continued Fraction for Convergence and Accuracy</a>
+      </h6>
+<p>
+        Alternatively, lets say we want to profile a continued fraction for convergence
+        and error. As an example, we'll use the continued fraction for the upper
+        incomplete gamma function, the following function object returns the next
+        a<sub>N </sub> and b<sub>N </sub> of the continued fraction each time it's invoked:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">upper_incomplete_gamma_fract</span>
+<span class="special">{</span>
+<span class="keyword">private</span><span class="special">:</span>
+   <span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">a</span><span class="special">;</span>
+   <span class="keyword">int</span> <span class="identifier">k</span><span class="special">;</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">result_type</span><span class="special">;</span>
+
+   <span class="identifier">upper_incomplete_gamma_fract</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z1</span><span class="special">)</span>
+      <span class="special">:</span> <span class="identifier">z</span><span class="special">(</span><span class="identifier">z1</span><span class="special">-</span><span class="identifier">a1</span><span class="special">+</span><span class="number">1</span><span class="special">),</span> <span class="identifier">a</span><span class="special">(</span><span class="identifier">a1</span><span class="special">),</span> <span class="identifier">k</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+   <span class="special">{</span>
+   <span class="special">}</span>
+
+   <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()()</span>
+   <span class="special">{</span>
+      <span class="special">++</span><span class="identifier">k</span><span class="special">;</span>
+      <span class="identifier">z</span> <span class="special">+=</span> <span class="number">2</span><span class="special">;</span>
+      <span class="keyword">return</span> <span class="identifier">result_type</span><span class="special">(</span><span class="identifier">k</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">),</span> <span class="identifier">z</span><span class="special">);</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        We want to measure both the relative error, and the rate of convergence of
+        this fraction, so we'll write a functor that returns both as a <a class="link" href="../internals1/tuples.html" title="Tuples">boost::math::tuple</a>:
+        class test_data will unpack the tuple for us, and create one column of data
+        for each element in the tuple (in addition to the input parameters):
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">ntl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">profile_gamma_fraction</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> <a class="link" href="../internals1/tuples.html" title="Tuples">boost::math::tuple</a><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">result_type</span><span class="special">;</span>
+
+   <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T</span> <span class="identifier">val</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+      <span class="comment">// estimate the true value, using arbitary precision</span>
+      <span class="comment">// arithmetic and NTL::RR:</span>
+      <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">rval</span><span class="special">(</span><span class="identifier">val</span><span class="special">);</span>
+      <span class="identifier">upper_incomplete_gamma_fract</span><span class="special"><</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">></span> <span class="identifier">f1</span><span class="special">(</span><span class="identifier">rval</span><span class="special">,</span> <span class="identifier">rval</span><span class="special">);</span>
+      <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">true_val</span> <span class="special">=</span> <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">f1</span><span class="special">,</span> <span class="number">1000</span><span class="special">);</span>
+      <span class="comment">//</span>
+      <span class="comment">// Now get the aproximation at double precision, along with the number of</span>
+      <span class="comment">// iterations required:</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span> <span class="identifier">iters</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">>::</span><span class="identifier">max</span><span class="special">();</span>
+      <span class="identifier">upper_incomplete_gamma_fract</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">f2</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
+      <span class="identifier">T</span> <span class="identifier">found_val</span> <span class="special">=</span> <span class="identifier">continued_fraction_a</span><span class="special">(</span><span class="identifier">f2</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span><span class="special">,</span> <span class="identifier">iters</span><span class="special">);</span>
+      <span class="comment">//</span>
+      <span class="comment">// Work out the relative error, as measured in units of epsilon:</span>
+      <span class="identifier">T</span> <span class="identifier">err</span> <span class="special">=</span> <span class="identifier">real_cast</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">relative_error</span><span class="special">(</span><span class="identifier">true_val</span><span class="special">,</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="identifier">found_val</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">epsilon</span><span class="special">());</span>
+      <span class="comment">//</span>
+      <span class="comment">// now just return the results as a tuple:</span>
+      <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">make_tuple</span><span class="special">(</span><span class="identifier">err</span><span class="special">,</span> <span class="identifier">iters</span><span class="special">);</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        Feeding that functor into test_data allows rapid output of csv data, for
+        whatever type <code class="computeroutput"><span class="identifier">T</span></code> we may be
+        interested in:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+   <span class="comment">// create an object to hold the data:</span>
+   <span class="identifier">test_data</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">data</span><span class="special">;</span>
+   <span class="comment">// insert 500 points at uniform intervals between just after 0 and 100:</span>
+   <span class="identifier">data</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">profile_gamma_fraction</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(),</span> <span class="identifier">make_periodic_param</span><span class="special">(</span><span class="number">0.01</span><span class="special">,</span> <span class="number">100.0</span><span class="special">,</span> <span class="number">100</span><span class="special">));</span>
+   <span class="comment">// print out in csv format:</span>
+   <span class="identifier">write_csv</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="identifier">data</span><span class="special">,</span> <span class="string">", "</span><span class="special">);</span>
+   <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        This time there's no need to plot a graph, the first few rows are:
+      </p>
+<pre class="programlisting"><span class="identifier">a</span> <span class="keyword">and</span> <span class="identifier">z</span><span class="special">,</span>  <span class="identifier">Error</span><span class="special">/</span><span class="identifier">epsilon</span><span class="special">,</span>  <span class="identifier">Iterations</span> <span class="identifier">required</span>
+
+<span class="number">0.01</span><span class="special">,</span>     <span class="number">9723.14</span><span class="special">,</span>        <span class="number">4726</span>
+<span class="number">1.0099</span><span class="special">,</span>   <span class="number">9.54818</span><span class="special">,</span>        <span class="number">87</span>
+<span class="number">2.0098</span><span class="special">,</span>   <span class="number">3.84777</span><span class="special">,</span>        <span class="number">40</span>
+<span class="number">3.0097</span><span class="special">,</span>   <span class="number">0.728358</span><span class="special">,</span>       <span class="number">25</span>
+<span class="number">4.0096</span><span class="special">,</span>   <span class="number">2.39712</span><span class="special">,</span>        <span class="number">21</span>
+<span class="number">5.0095</span><span class="special">,</span>   <span class="number">0.233263</span><span class="special">,</span>       <span class="number">16</span>
+</pre>
+<p>
+        So it's pretty clear that this fraction shouldn't be used for small values
+        of a and z.
+      </p>
+<h5>
+<a name="math_toolkit.internals2.test_data.h5"></a>
+        <span class="phrase"><a name="math_toolkit.internals2.test_data.reference"></a></span><a class="link" href="test_data.html#math_toolkit.internals2.test_data.reference">reference</a>
+      </h5>
+<p>
+        Most of this tool has been described already in the examples above, we'll
+        just add the following notes on the non-member functions:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
+</pre>
+<p>
+        Tells class test_data to test <span class="emphasis"><em>n_points</em></span> random values
+        in the range [start_range,end_range].
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_periodic_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
+</pre>
+<p>
+        Tells class test_data to test <span class="emphasis"><em>n_points</em></span> evenly spaced
+        values in the range [start_range,end_range].
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_power_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">basis</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">start_exponent</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">end_exponent</span><span class="special">);</span>
+</pre>
+<p>
+        Tells class test_data to test points of the form <span class="emphasis"><em>basis + R * 2<sup>expon</sup></em></span>
+        for each <span class="emphasis"><em>expon</em></span> in the range [start_exponent, end_exponent],
+        and <span class="emphasis"><em>R</em></span> a random number in [0.5, 1].
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">get_user_parameter_info</span><span class="special">(</span><span class="identifier">parameter_info</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">info</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">param_name</span><span class="special">);</span>
+</pre>
+<p>
+        Prompts the user for the parameter range and form to use.
+      </p>
+<p>
+        Finally, if we don't want the parameter to be included in the output, we
+        can tell test_data by setting it a "dummy parameter":
+      </p>
+<pre class="programlisting"><span class="identifier">parameter_info</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">,</span> <span class="number">10</span><span class="special">);</span>
+<span class="identifier">p</span><span class="special">.</span><span class="identifier">type</span> <span class="special">|=</span> <span class="identifier">dummy_param</span><span class="special">;</span>
+</pre>
+<p>
+        This is useful when the functor used transforms the parameter in some way
+        before passing it to the function under test, usually the functor will then
+        return both the transformed input and the result in a tuple, so there's no
+        need for the original pseudo-parameter to be included in program output.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error_test.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../using_udt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/internals_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/internals_overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">
+<link rel="prev" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">
+<link rel="next" href="internals1.html" title="Utilities & internals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../toolkit.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_internals_overview">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.internals_overview"></a><a class="link" href="internals_overview.html" title="Overview">Overview</a>
+</h2></div></div></div>
+<p>
+      This section contains internal utilities used by the library's implementation
+      along with tools used in development and testing. These tools have only minimal
+      documentation, and crucially <span class="emphasis"><em>do not have stable interfaces</em></span>.
+    </p>
+<p>
+      There is no doubt that these components can be improved, but they are also
+      largely incidental to the main purpose of this library.
+    </p>
+<p>
+      These tools are designed to "just get the job done", and receive
+      minimal documentation here, in the hopes that they will help stimulate further
+      submissions to this library.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../toolkit.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="internals1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/interp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/interp.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Interpreting these Results</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="perf_over0.html" title="Performance Overview">
+<link rel="next" href="getting_best.html" title="Getting the Best Performance from this Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="perf_over0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="getting_best.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_interp">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.interp"></a><a class="link" href="interp.html" title="Interpreting these Results">Interpreting these Results</a>
+</h2></div></div></div>
+<p>
+      In all of the following tables, the best performing result in each row, is
+      assigned a relative value of "1" and shown in bold, so a score of
+      "2" means <span class="emphasis"><em>"twice as slow as the best performing result".</em></span>
+      Actual timings in seconds per function call are also shown in parenthesis.
+    </p>
+<p>
+      Result were obtained on a system with an Intel 2.8GHz Pentium 4 processor with
+      2Gb of RAM and running either Windows XP or Mandriva Linux.
+    </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        As usual with performance results these should be taken with a large pinch
+        of salt: relative performance is known to shift quite a bit depending upon
+        the architecture of the particular test system used. Further more, our performance
+        results were obtained using our own test data: these test values are designed
+        to provide good coverage of our code and test all the appropriate corner
+        cases. They do not necessarily represent "typical" usage: whatever
+        that may be!
+      </p></td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Since these tests were run, most compilers have improved their code optimisation,
+        and processor speeds have improved too, so these results are known to be
+        out of date.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="perf_over0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="getting_best.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/intro.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/intro.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,125 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>About the Math Toolkit</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="../overview.html" title="Chapter 1. Overview">
+<link rel="next" href="navigation.html" title="Navigation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_intro">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.intro"></a><a class="link" href="intro.html" title="About the Math Toolkit">About the Math Toolkit</a>
+</h2></div></div></div>
+<p>
+      This library is divided into three interconnected parts:
+    </p>
+<h5>
+<a name="math_toolkit.intro.h0"></a>
+      <span class="phrase"><a name="math_toolkit.intro.statistical_distributions"></a></span><a class="link" href="intro.html#math_toolkit.intro.statistical_distributions">Statistical
+      Distributions</a>
+    </h5>
+<p>
+      Provides a reasonably comprehensive set of <a class="link" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">statistical
+      distributions</a>, upon which higher level statistical tests can be built.
+    </p>
+<p>
+      The initial focus is on the central <a href="http://en.wikipedia.org/wiki/Univariate" target="_top">univariate
+      </a> distributions.
+      Both continuous
+      (like <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">normal</a>
+      & <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher</a>) and
+      discrete
+      (like <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">binomial</a>
+      & <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson</a>)
+      distributions are provided.
+    </p>
+<p>
+      A <a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">comprehensive tutorial is provided</a>,
+      along with a series of <a class="link" href="stat_tut/weg.html" title="Worked Examples">worked examples</a>
+      illustrating how the library is used to conduct statistical tests.
+    </p>
+<h5>
+<a name="math_toolkit.intro.h1"></a>
+      <span class="phrase"><a name="math_toolkit.intro.mathematical_special_functions"></a></span><a class="link" href="intro.html#math_toolkit.intro.mathematical_special_functions">Mathematical
+      Special Functions</a>
+    </h5>
+<p>
+      Provides a small number of high quality <a class="link" href="../special.html" title="Chapter 3. Special Functions">special functions</a>,
+      initially these were concentrated on functions used in statistical applications
+      along with those in the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+      Report on C++ Library Extensions</a>.
+    </p>
+<p>
+      The function families currently implemented are the gamma, beta & erf functions
+      along with the incomplete gamma and beta functions (four variants of each)
+      and all the possible inverses of these, plus digamma, various factorial functions,
+      Bessel functions, elliptic integrals, sinus cardinals (along with their hyperbolic
+      variants), inverse hyperbolic functions, Legrendre/Laguerre/Hermite polynomials
+      and various special power and logarithmic functions.
+    </p>
+<p>
+      All the implementations are fully generic and support the use of arbitrary
+      "real-number" types, including Boost.Multiprecision,
+      although they are optimised for use with types with known-about <a href="http://en.wikipedia.org/wiki/Significand" target="_top">significand
+      (or mantissa)</a> sizes: typically <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.intro.h2"></a>
+      <span class="phrase"><a name="math_toolkit.intro.implementation_toolkit"></a></span><a class="link" href="intro.html#math_toolkit.intro.implementation_toolkit">Implementation
+      Toolkit</a>
+    </h5>
+<p>
+      Provides <a class="link" href="../toolkit.html" title="Chapter 11. Internals and Internal Details">many of the tools</a> required to implement
+      mathematical special functions: hopefully the presence of these will encourage
+      other authors to contribute more special function implementations in the future.
+      These tools are currently considered experimental: they are "exposed implementation
+      details" whose interfaces and/or implementations may change.
+    </p>
+<p>
+      There are helpers for the <a class="link" href="internals1/series_evaluation.html" title="Series Evaluation">evaluation
+      of infinite series</a>, <a class="link" href="internals1/cf.html" title="Continued Fraction Evaluation">continued
+      fractions</a> and <a class="link" href="internals1/rational.html" title="Polynomial and Rational Function Evaluation">rational
+      approximations</a>.
+    </p>
+<p>
+      There is a fairly comprehensive set of root finding and <a class="link" href="internals1/minima.html" title="Locating Function Minima: Brent's algorithm">function
+      minimisation algorithms</a>: the root finding algorithms are both <a class="link" href="internals1/roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schroeder">with</a> and <a class="link" href="internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">without</a>
+      derivative support.
+    </p>
+<p>
+      A <a class="link" href="internals2/minimax.html" title="Minimax Approximations and the Remez Algorithm">Remez algorithm implementation</a>
+      allows for the locating of minimax rational approximations.
+    </p>
+<p>
+      There are also (experimental) classes for the <a class="link" href="internals2/polynomials.html" title="Polynomials">manipulation
+      of polynomials</a>, for <a class="link" href="internals2/error_test.html" title="Relative Error and Testing">testing
+      a special function against tabulated test data</a>, and for the <a class="link" href="internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">rapid
+      generation of test data</a> and/or data for output to an external graphing
+      application.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/intro0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/intro0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="prev" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="next" href="tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../constants.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_intro0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.intro0"></a><a class="link" href="intro0.html" title="Introduction">Introduction</a>
+</h2></div></div></div>
+<p>
+      Boost.Math provides a collection of mathematical constants.
+    </p>
+<h5>
+<a name="math_toolkit.intro0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.intro0.why_use_boost_math_mathematical_"></a></span><a class="link" href="intro0.html#math_toolkit.intro0.why_use_boost_math_mathematical_">Why
+      use Boost.Math mathematical constants?</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <p>
+            Readable. For the very many jobs just using built-in like <code class="computeroutput"><span class="keyword">double</span></code>, you can just write expressions
+            like
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">area</span> <span class="special">=</span> <span class="identifier">pi</span> <span class="special">*</span> <span class="identifier">r</span> <span class="special">*</span> <span class="identifier">r</span><span class="special">;</span></pre>
+          (If that's all you want, jump direct to <a class="link" href="tutorial/non_templ.html" title="Use in non-template code">use
+          in non-template code</a>!)
+        </li>
+<li class="listitem">
+          Effortless - avoiding a search of reference sources.
+        </li>
+<li class="listitem">
+          Usable with both builtin floating point types, and user-defined, possibly
+          extended precision, types such as NTL, MPFR/GMP, mp_float: in the latter
+          case the constants are computed to the necessary precision and then cached.
+        </li>
+<li class="listitem">
+          Accurate - ensuring that the values are as accurate as possible for the
+          chosen floating-point type
+          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem">
+                No loss of accuracy from repeated rounding of intermediate computations.
+              </li>
+<li class="listitem">
+                Result is computed with higher precision and only rounded once.
+              </li>
+<li class="listitem">
+                Less risk of inaccurate result from functions pow, trig and log at
+                corner cases.
+              </li>
+<li class="listitem">
+                Less risk of <a href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" target="_top">cancellation
+                error</a>.
+              </li>
+</ul></div>
+        </li>
+<li class="listitem">
+          Portable - as possible between different systems using different floating-point
+          precisions: see <a class="link" href="tutorial/templ.html" title="Use in template code">use in template
+          code</a>.
+        </li>
+<li class="listitem">
+          Tested - by comparison with other published sources, or separately computed
+          at long double precision.
+        </li>
+<li class="listitem">
+          Faster - can avoid (re-)calculation at runtime.
+          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem">
+                If the value returned is a builtin type then it's returned by value
+                as a <code class="computeroutput"><span class="keyword">constexpr</span></code> (C++11
+                feature, if available).
+              </li>
+<li class="listitem">
+                If the value is computed and cached (or constructed from a string
+                representation and cached), then it's returned by constant reference.<br>
+                This can be significant if:
+              </li>
+<li class="listitem">
+                Functions pow, trig or log are used.
+              </li>
+<li class="listitem">
+                Inside an inner loop.
+              </li>
+<li class="listitem">
+                Using a high-precision UDT like Boost.Multiprecision.
+              </li>
+<li class="listitem">
+                Compiler optimizations possible with built-in types, especially
+                <code class="computeroutput"><span class="keyword">double</span></code>, are not available.
+              </li>
+</ul></div>
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../constants.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/introduction.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/introduction.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="next" href="synopsis1.html" title="Synopsis">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../gcd_lcm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_introduction">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
+</h2></div></div></div>
+<p>
+      The class and function templates in <boost/math/common_factor.hpp> provide
+      run-time and compile-time evaluation of the greatest common divisor (GCD) or
+      least common multiple (LCM) of two integers. These facilities are useful for
+      many numeric-oriented generic programming problems.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../gcd_lcm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis1.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Hyperbolic Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="sinc/sinhc_pi.html" title="sinhc_pi">
+<link rel="next" href="inv_hyper/inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sinc/sinhc_pi.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="inv_hyper/inv_hyper_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_inv_hyper">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.inv_hyper"></a><a class="link" href="inv_hyper.html" title="Inverse Hyperbolic Functions">Inverse Hyperbolic Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="inv_hyper/inv_hyper_over.html">Inverse Hyperbolic
+      Functions Overview</a></span></dt>
+<dt><span class="section">acosh</span></dt>
+<dt><span class="section">asinh</span></dt>
+<dt><span class="section">atanh</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sinc/sinhc_pi.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="inv_hyper/inv_hyper_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/acosh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/acosh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,119 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>acosh</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+<link rel="prev" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">
+<link rel="next" href="asinh.html" title="asinh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inv_hyper_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="asinh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_inv_hyper_acosh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inv_hyper.acosh"></a><a class="link" href="acosh.html" title="acosh">acosh</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Computes the reciprocal of (the restriction to the range of <code class="literal">[0;+∞[</code>)
+        <a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">the hyperbolic cosine
+        function</a>, at x. Values returned are positive.
+      </p>
+<p>
+        If x is in the range <code class="literal">]-∞;+1[</code> then returns the result of
+        <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/acosh.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.acosh.h0"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.acosh.accuracy"></a></span><a class="link" href="acosh.html#math_toolkit.inv_hyper.acosh.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Generally accuracy is to within 1 or 2 epsilon across all supported platforms.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.acosh.h1"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.acosh.testing"></a></span><a class="link" href="acosh.html#math_toolkit.inv_hyper.acosh.testing">Testing</a>
+      </h5>
+<p>
+        This function is tested using a combination of random test values designed
+        to give full function coverage computed at high precision using the "naive"
+        formula:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/acosh1.png"></span>
+      </p>
+<p>
+        along with a selection of sanity check values computed using functions.wolfram.com
+        to at least 50 decimal digits.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.acosh.h2"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.acosh.implementation"></a></span><a class="link" href="acosh.html#math_toolkit.inv_hyper.acosh.implementation">Implementation</a>
+      </h5>
+<p>
+        For sufficiently large x, we can use the approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/acosh2.png"></span>
+      </p>
+<p>
+        For x sufficiently close to 1 we can use the approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/acosh4.png"></span>
+      </p>
+<p>
+        Otherwise for x close to 1 we can use the following rearrangement of the
+        primary definition to preserve accuracy:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/acosh3.png"></span>
+      </p>
+<p>
+        Otherwise the <a href="http://functions.wolfram.com/ElementaryFunctions/ArcCosh/02/" target="_top">primary
+        definition</a> is used:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/acosh1.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inv_hyper_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="asinh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/asinh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/asinh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,114 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>asinh</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+<link rel="prev" href="acosh.html" title="acosh">
+<link rel="next" href="atanh.html" title="atanh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="acosh.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="atanh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_inv_hyper_asinh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inv_hyper.asinh"></a><a class="link" href="asinh.html" title="asinh">asinh</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Computes the reciprocal of <a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">the
+        hyperbolic sine function</a>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and T otherwise.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/asinh.png" align="middle"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.asinh.h0"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.asinh.accuracy"></a></span><a class="link" href="asinh.html#math_toolkit.inv_hyper.asinh.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Generally accuracy is to within 1 or 2 epsilon across all supported platforms.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.asinh.h1"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.asinh.testing"></a></span><a class="link" href="asinh.html#math_toolkit.inv_hyper.asinh.testing">Testing</a>
+      </h5>
+<p>
+        This function is tested using a combination of random test values designed
+        to give full function coverage computed at high precision using the "naive"
+        formula:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/asinh1.png"></span>
+      </p>
+<p>
+        along with a selection of sanity check values computed using functions.wolfram.com
+        to at least 50 decimal digits.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.asinh.h2"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.asinh.implementation"></a></span><a class="link" href="asinh.html#math_toolkit.inv_hyper.asinh.implementation">Implementation</a>
+      </h5>
+<p>
+        For sufficiently large x we can use the approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/asinh2.png"></span>
+      </p>
+<p>
+        While for very small x we can use the approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/asinh3.png"></span>
+      </p>
+<p>
+        For 0.5 > x > ε the following rearrangement of the primary definition
+        is used:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/asinh4.png"></span>
+      </p>
+<p>
+        Otherwise evalution is via the <a href="http://functions.wolfram.com/ElementaryFunctions/ArcSinh/02/" target="_top">primary
+        definition</a>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/asinh4.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="acosh.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="atanh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/atanh.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/atanh.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>atanh</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+<link rel="prev" href="asinh.html" title="asinh">
+<link rel="next" href="../owens_t.html" title="Owen's T function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="asinh.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../owens_t.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_inv_hyper_atanh">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inv_hyper.atanh"></a><a class="link" href="atanh.html" title="atanh">atanh</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Computes the reciprocal of <a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">the
+        hyperbolic tangent function</a>, at x.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        If x is in the range <code class="literal">]-∞;-1[</code> or in the range <code class="literal">]+1;+∞[</code>
+        then returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        If x is in the range <code class="literal">[-1;-1+ε[</code>, then the result of -<a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        is returned, with ε  
+denoting numeric_limits<T>::epsilon().
+      </p>
+<p>
+        If x is in the range <code class="literal">]+1-ε;+1]</code>, then the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+        is returned, with ε  
+denoting numeric_limits<T>::epsilon().
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and T otherwise.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/atanh.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.atanh.h0"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.atanh.accuracy"></a></span><a class="link" href="atanh.html#math_toolkit.inv_hyper.atanh.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Generally accuracy is to within 1 or 2 epsilon across all supported platforms.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.atanh.h1"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.atanh.testing"></a></span><a class="link" href="atanh.html#math_toolkit.inv_hyper.atanh.testing">Testing</a>
+      </h5>
+<p>
+        This function is tested using a combination of random test values designed
+        to give full function coverage computed at high precision using the "naive"
+        formula:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/atanh1.png"></span>
+      </p>
+<p>
+        along with a selection of sanity check values computed using functions.wolfram.com
+        to at least 50 decimal digits.
+      </p>
+<h5>
+<a name="math_toolkit.inv_hyper.atanh.h2"></a>
+        <span class="phrase"><a name="math_toolkit.inv_hyper.atanh.implementation"></a></span><a class="link" href="atanh.html#math_toolkit.inv_hyper.atanh.implementation">Implementation</a>
+      </h5>
+<p>
+        For sufficiently small x we can use the approximation:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/atanh2.png"></span>
+      </p>
+<p>
+        Otherwise the <a href="http://functions.wolfram.com/ElementaryFunctions/ArcTanh/02/" target="_top">primary
+        definition</a>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/atanh1.png"></span>
+      </p>
+<p>
+        or its equivalent form:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/atanh3.png"></span>
+      </p>
+<p>
+        is used.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="asinh.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../owens_t.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/inv_hyper_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/inv_hyper/inv_hyper_over.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Hyperbolic Functions Overview</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+<link rel="prev" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+<link rel="next" href="acosh.html" title="acosh">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../inv_hyper.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="acosh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_inv_hyper_inv_hyper_over">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.inv_hyper.inv_hyper_over"></a><a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">Inverse Hyperbolic
+      Functions Overview</a>
+</h3></div></div></div>
+<p>
+        The exponential funtion is defined, for all objects for which this makes
+        sense, as the power series <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb1.png"></span>,
+        with <span class="emphasis"><em><code class="literal">n! = 1x2x3x4x5...xn</code></em></span> (and <span class="emphasis"><em><code class="literal">0!
+        = 1</code></em></span> by definition) being the factorial of <span class="emphasis"><em><code class="literal">n</code></em></span>.
+        In particular, the exponential function is well defined for real numbers,
+        complex number, quaternions, octonions, and matrices of complex numbers,
+        among others.
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em><span class="bold"><strong>Graph of exp on R</strong></span></em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="inlinemediaobject"><img src="../../../graphs/exp_on_r.png"></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em><span class="bold"><strong>Real and Imaginary parts of exp on C</strong></span></em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="inlinemediaobject"><img src="../../../graphs/im_exp_on_c.png"></span>
+        </p></blockquote></div>
+<p>
+        The hyperbolic functions are defined as power series which can be computed
+        (for reals, complex, quaternions and octonions) as:
+      </p>
+<p>
+        Hyperbolic cosine: <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb5.png"></span>
+      </p>
+<p>
+        Hyperbolic sine: <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb6.png"></span>
+      </p>
+<p>
+        Hyperbolic tangent: <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb7.png"></span>
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em><span class="bold"><strong>Trigonometric functions on R (cos: purple;
+          sin: red; tan: blue)</strong></span></em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="inlinemediaobject"><img src="../../../graphs/trigonometric.png"></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em><span class="bold"><strong>Hyperbolic functions on r (cosh: purple;
+          sinh: red; tanh: blue)</strong></span></em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="inlinemediaobject"><img src="../../../graphs/hyperbolic.png"></span>
+        </p></blockquote></div>
+<p>
+        The hyperbolic sine is one to one on the set of real numbers, with range
+        the full set of reals, while the hyperbolic tangent is also one to one on
+        the set of real numbers but with range <code class="literal">[0;+∞[</code>, and therefore
+        both have inverses. The hyperbolic cosine is one to one from <code class="literal">]-∞;+1[</code>
+        onto <code class="literal">]-∞;-1[</code> (and from <code class="literal">]+1;+∞[</code> onto
+        <code class="literal">]-∞;-1[</code>); the inverse function we use here is defined on
+        <code class="literal">]-∞;-1[</code> with range <code class="literal">]-∞;+1[</code>.
+      </p>
+<p>
+        The inverse of the hyperbolic tangent is called the Argument hyperbolic tangent,
+        and can be computed as <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb15.png"></span>.
+      </p>
+<p>
+        The inverse of the hyperbolic sine is called the Argument hyperbolic sine,
+        and can be computed (for <code class="literal">[-1;-1+ε[</code>) as <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb17.png"></span>.
+      </p>
+<p>
+        The inverse of the hyperbolic cosine is called the Argument hyperbolic cosine,
+        and can be computed as <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb18.png"></span>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../inv_hyper.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="acosh.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/issues.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/issues.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1245 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Known Issues, and TODO List</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../status.html" title="Chapter 16. Library Status">
+<link rel="prev" href="history1_0.html" title="History and What's New">
+<link rel="next" href="credits.html" title="Credits and Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="history1_0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_issues">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.issues"></a><a class="link" href="issues.html" title="Known Issues, and TODO List">Known Issues, and TODO List</a>
+</h2></div></div></div>
+<p>
+      Predominantly this is a TODO list, or a list of possible future enhancements.
+      Items labled "High Priority" effect the proper functioning of the
+      component, and should be fixed as soon as possible. Items labled "Medium
+      Priority" are desirable enhancements, often pertaining to the performance
+      of the component, but do not effect it's accuracy or functionality. Items labled
+      "Low Priority" should probably be investigated at some point. Such
+      classifications are obviously highly subjective.
+    </p>
+<p>
+      If you don't see a component listed here, then we don't have any known issues
+      with it.
+    </p>
+<h5>
+<a name="math_toolkit.issues.h0"></a>
+      <span class="phrase"><a name="math_toolkit.issues.derivatives_of_bessel_functions_"></a></span><a class="link" href="issues.html#math_toolkit.issues.derivatives_of_bessel_functions_">Derivatives
+      of Bessel functions (and their zeros)</a>
+    </h5>
+<p>
+      Potentially, there could be native support for <code class="computeroutput"><span class="identifier">cyl_bessel_j_prime</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">cyl_neumann_prime</span><span class="special">()</span></code>. One could also imagine supporting the zeros
+      thereof, but they might be slower to calculate since root bracketing might
+      be needed instead of Newton iteration (for the lack of 2nd derivatives).
+    </p>
+<p>
+      Since Boost.Math's Bessel functions are so excellent, the quick way to <code class="computeroutput"><span class="identifier">cyl_bessel_j_prime</span><span class="special">()</span></code>
+      and <code class="computeroutput"><span class="identifier">cyl_neumann_prime</span><span class="special">()</span></code>
+      would be via relationship with <code class="computeroutput"><span class="identifier">cyl_bessel_j</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">cyl_neumann</span><span class="special">()</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.issues.h1"></a>
+      <span class="phrase"><a name="math_toolkit.issues.tgamma"></a></span><a class="link" href="issues.html#math_toolkit.issues.tgamma">tgamma</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Can the <a class="link" href="lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
+          be optimized any further? (low priority)
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.issues.h2"></a>
+      <span class="phrase"><a name="math_toolkit.issues.incomplete_beta"></a></span><a class="link" href="issues.html#math_toolkit.issues.incomplete_beta">Incomplete
+      Beta</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Investigate Didonato and Morris' asymptotic expansion for large a and b
+          (medium priority).
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.issues.h3"></a>
+      <span class="phrase"><a name="math_toolkit.issues.inverse_gamma"></a></span><a class="link" href="issues.html#math_toolkit.issues.inverse_gamma">Inverse
+      Gamma</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Investigate whether we can skip iteration altogether if the first approximation
+          is good enough (Medium Priority).
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.issues.h4"></a>
+      <span class="phrase"><a name="math_toolkit.issues.polynomials"></a></span><a class="link" href="issues.html#math_toolkit.issues.polynomials">Polynomials</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          The Legendre and Laguerre Polynomials have surprisingly different error
+          rates on different platforms, considering they are evaluated with only
+          basic arithmetic operations. Maybe this is telling us something, or maybe
+          not (Low Priority).
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.issues.h5"></a>
+      <span class="phrase"><a name="math_toolkit.issues.elliptic_integrals"></a></span><a class="link" href="issues.html#math_toolkit.issues.elliptic_integrals">Elliptic
+      Integrals</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Carlson's algorithms are essentially unchanged from Xiaogang Zhang's Google
+          Summer of Code student project, and are based on Carlson's original papers.
+          However, Carlson has revised his algorithms since then (refer to the references
+          in the elliptic integral docs for a list), to improve performance and accuracy,
+          we may be able to take advantage of these improvements too (Low Priority).
+        </li>
+<li class="listitem">
+          [para Carlson's algorithms (mainly R<sub>J</sub>) are somewhat prone to internal overflow/underflow
+          when the arguments are very large or small. The homogeneity relations:]
+          [para R<sub>F</sub>(ka, kb, kc) = k<sup>-1/2</sup> R<sub>F</sub>(a, b, c)] [para and] [para R<sub>J</sub>(ka, kb, kc,
+          kr) = k<sup>-3/2</sup> R<sub>J</sub>(a, b, c, r)] [para could be used to sidestep trouble here:
+          provided the problem domains can be accurately identified. (Medium Priority).]
+        </li>
+<li class="listitem">
+          Carlson's R<sub>C</sub> can be reduced to elementary funtions (asin and log), would
+          it be more efficient evaluated this way, rather than by Carlson's algorithms?
+          (Low Priority).
+        </li>
+<li class="listitem">
+          Should we add an implementation of Carlson's R<sub>G</sub>? It's not required for
+          the Legendre form integrals, but some people may find it useful (Low Priority).
+        </li>
+<li class="listitem">
+          There are a several other integrals: D(φ, k), Z(β, k), Λ<sub>0</sub>(β, k) and Bulirsch's
+          <span class="emphasis"><em>el</em></span> functions that could be implemented using Carlson's
+          integrals (Low Priority).
+        </li>
+<li class="listitem">
+          The integrals K(k) and E(k) could be implemented using rational approximations
+          (both for efficiency and accuracy), assuming we can find them. (Medium
+          Priority).
+        </li>
+<li class="listitem">
+          There is a sub-domain of <a class="link" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a>
+          that is unimplemented (see the docs for details), currently it's not clear
+          how to solve this issue, or if it's ever likely to be an real problem in
+          practice - especially as most other implementations don't support this
+          domain either (Medium Priority).
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.issues.h6"></a>
+      <span class="phrase"><a name="math_toolkit.issues.owen_s_t_function"></a></span><a class="link" href="issues.html#math_toolkit.issues.owen_s_t_function">Owen's
+      T Function</a>
+    </h5>
+<p>
+      There is a problem area at arbitrary precision when <span class="emphasis"><em>a</em></span>
+      is very close to 1. However, note that the value for <span class="emphasis"><em>T(h, 1)</em></span>
+      is well known and easy to compute, and if we replaced the <span class="emphasis"><em>a<sup>k</sup></em></span>
+      terms in series T1, T2 or T4 by <span class="emphasis"><em>(a<sup>k</sup> - 1)</em></span> then we would
+      have the difference between <span class="emphasis"><em>T(h, a)</em></span> and <span class="emphasis"><em>T(h,
+      1)</em></span>. Unfortunately this doesn't improve the convergence of those
+      series in that area. It certainly looks as though a new series in terms of
+      <span class="emphasis"><em>(1-a)<sup>k</sup></em></span> is both possible and desirable in this area, but
+      it remains elusive at present.
+    </p>
+<h5>
+<a name="math_toolkit.issues.h7"></a>
+      <span class="phrase"><a name="math_toolkit.issues.jocobi_elliptic_functions"></a></span><a class="link" href="issues.html#math_toolkit.issues.jocobi_elliptic_functions">Jocobi
+      elliptic functions</a>
+    </h5>
+<p>
+      These are useful in engineering applications - we have had a request to add
+      these.
+    </p>
+<h5>
+<a name="math_toolkit.issues.h8"></a>
+      <span class="phrase"><a name="math_toolkit.issues.statistical_distributions"></a></span><a class="link" href="issues.html#math_toolkit.issues.statistical_distributions">Statistical
+      distributions</a>
+    </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          Student's t Perhaps switch to normal distribution as a better approximation
+          for very large degrees of freedom?
+        </li></ul></div>
+<h5>
+<a name="math_toolkit.issues.h9"></a>
+      <span class="phrase"><a name="math_toolkit.issues.feature_requests"></a></span><a class="link" href="issues.html#math_toolkit.issues.feature_requests">Feature
+      Requests</a>
+    </h5>
+<p>
+      The following table lists distributions that are found in other packages but
+      which are not yet present here, the more frequently the distribution is found,
+      the higher the priority for implementing it:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Distribution
+              </p>
+            </th>
+<th>
+              <p>
+                R
+              </p>
+            </th>
+<th>
+              <p>
+                Mathematica 6
+              </p>
+            </th>
+<th>
+              <p>
+                NIST
+              </p>
+            </th>
+<th>
+              <p>
+                Regress+
+              </p>
+            </th>
+<th>
+              <p>
+                Matlab
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                Geometric
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Multinomial
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Tukey Lambda
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Half Normal / Folded Normal
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Chi
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Gumbel
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Discrete Uniform
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Log Series
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Nakagami (generalised Chi)
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Log Logistic
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Tukey (Studentized range)
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Wilcoxon rank sum
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Wincoxon signed rank
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Non-central Beta
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Maxwell
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Beta-Binomial
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Beta-negative Binomial
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Zipf
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Birnbaum-Saunders / Fatigue Life
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Double Exponential
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Power Normal
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Power Lognormal
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Cosine
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Double Gamma
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Double Weibul
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Hyperbolic Secant
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Semicircular
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Bradford
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Birr / Fisk
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Reciprocal
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                X
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Kolmogorov Distribution
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+<td>
+              <p>
+                -
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      Also asked for more than once:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Add support for interpolated distributions, possibly combine with numeric
+          integration and differentiation.
+        </li>
+<li class="listitem">
+          Add support for bivariate and multivariate distributions: most especially
+          the normal.
+        </li>
+<li class="listitem">
+          Add support for the log of the cdf and pdf: this is mainly a performance
+          optimisation since we can avoid some special function calls for some distributions
+          by returning the log of the result.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history1_0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">
+<link rel="next" href="jacobi/jac_over.html" title="Overvew of the Jacobi Elliptic Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ellint/ellint_3.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi/jac_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.jacobi"></a><a class="link" href="jacobi.html" title="Jacobi Elliptic Functions">Jacobi Elliptic Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="jacobi/jac_over.html">Overvew of the Jacobi Elliptic
+      Functions</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_elliptic.html">Jacobi Elliptic
+      SN, CN and DN</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_cd.html">Jacobi Elliptic Function
+      cd</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_cn.html">Jacobi Elliptic Function
+      cn</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_cs.html">Jacobi Elliptic Function
+      cs</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_dc.html">Jacobi Elliptic Function
+      dc</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_dn.html">Jacobi Elliptic Function
+      dn</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_ds.html">Jacobi Elliptic Function
+      ds</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_nc.html">Jacobi Elliptic Function
+      nc</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_nd.html">Jacobi Elliptic Function
+      nd</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_ns.html">Jacobi Elliptic Function
+      ns</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_sc.html">Jacobi Elliptic Function
+      sc</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_sd.html">Jacobi Elliptic Function
+      sd</a></span></dt>
+<dt><span class="section"><a href="jacobi/jacobi_sn.html">Jacobi Elliptic Function
+      sn</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ellint/ellint_3.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi/jac_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jac_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jac_over.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Overvew of the Jacobi Elliptic Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="next" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../jacobi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_elliptic.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jac_over">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jac_over"></a><a class="link" href="jac_over.html" title="Overvew of the Jacobi Elliptic Functions">Overvew of the Jacobi Elliptic
+      Functions</a>
+</h3></div></div></div>
+<p>
+        There are twelve Jacobi Elliptic functions, of which the three copolar functions
+        <span class="emphasis"><em>sn</em></span>, <span class="emphasis"><em>cn</em></span> and <span class="emphasis"><em>dn</em></span>
+        are the most important as the other nine can be computed from these three
+        [2] [3] [4].
+      </p>
+<p>
+        These functions each take two arguments: a parameter, and a variable as described
+        below.
+      </p>
+<p>
+        Like all elliptic functions these can be parameterised in a number of ways:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            In terms of a parameter <span class="emphasis"><em>m</em></span>.
+          </li>
+<li class="listitem">
+            In terms of the elliptic modulus <span class="emphasis"><em>k</em></span> where <span class="emphasis"><em>m
+            = k<sup>2</sup></em></span>.
+          </li>
+<li class="listitem">
+            In terms of the modular angle α, where <span class="emphasis"><em>m = sin<sup>2</sup>α</em></span>.
+          </li>
+</ul></div>
+<p>
+        In our implementation, these functions all take the elliptic modulus <span class="emphasis"><em>k</em></span>
+        as the parameter.
+      </p>
+<p>
+        In addition the variable <span class="emphasis"><em>u</em></span> is sometimes expressed as
+        an amplitude φ, in our implementation we always use <span class="emphasis"><em>u</em></span>.
+      </p>
+<p>
+        Finally note that our functions all take the elliptic modulus as the first
+        argument - this is for alignment with the Elliptic Integrals.
+      </p>
+<p>
+        There are twenve functions for computing the twelve individual Jacobi elliptic
+        functions: <a class="link" href="jacobi_cd.html" title="Jacobi Elliptic Function cd">jacobi_cd</a>,
+        <a class="link" href="jacobi_cn.html" title="Jacobi Elliptic Function cn">jacobi_cn</a>, <a class="link" href="jacobi_cs.html" title="Jacobi Elliptic Function cs">jacobi_cs</a>,
+        <a class="link" href="jacobi_dc.html" title="Jacobi Elliptic Function dc">jacobi_dc</a>, <a class="link" href="jacobi_dn.html" title="Jacobi Elliptic Function dn">jacobi_dn</a>,
+        <a class="link" href="jacobi_ds.html" title="Jacobi Elliptic Function ds">jacobi_ds</a>, <a class="link" href="jacobi_nc.html" title="Jacobi Elliptic Function nc">jacobi_nc</a>,
+        <a class="link" href="jacobi_nd.html" title="Jacobi Elliptic Function nd">jacobi_nd</a>, <a class="link" href="jacobi_ns.html" title="Jacobi Elliptic Function ns">jacobi_ns</a>,
+        <a class="link" href="jacobi_sc.html" title="Jacobi Elliptic Function sc">jacobi_sc</a>, <a class="link" href="jacobi_sd.html" title="Jacobi Elliptic Function sd">jacobi_sd</a>
+        and <a class="link" href="jacobi_sn.html" title="Jacobi Elliptic Function sn">jacobi_sn</a>.
+      </p>
+<p>
+        They are all called as for example:
+      </p>
+<pre class="programlisting"><span class="identifier">jacobi_cs</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">u</span><span class="special">);</span>
+</pre>
+<p>
+        Note however that these individual functions are all really thin wrappers
+        around the function <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>
+        which calculates the three copolar functions <span class="emphasis"><em>sn</em></span>, <span class="emphasis"><em>cn</em></span>
+        and <span class="emphasis"><em>dn</em></span> in a single function call. Thus if you need more
+        than one of these functions for a given set of arguments, it's most efficient
+        to use <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>.
+      </p>
+<div class="footnotes">
+<br><hr style="width:100; text-align:left;margin-left: 0">
+<div id="ftn.math_toolkit.jacobi.jac_over.f0" class="footnote"><p>[2] 
+          <a href="http://en.wikipedia.org/wiki/Jacobi_elliptic_functions" target="_top">Wikipedia:
+          Jacobi elliptic functions</a>
+        </p></div>
+<div id="ftn.math_toolkit.jacobi.jac_over.f1" class="footnote"><p>[3] 
+          <a href="http://mathworld.wolfram.com/JacobiEllipticFunctions.html" target="_top">Weisstein,
+          Eric W. "Jacobi Elliptic Functions." From MathWorld - A Wolfram
+          Web Resource.</a>
+        </p></div>
+<div id="ftn.math_toolkit.jacobi.jac_over.f2" class="footnote"><p>[4] 
+          <a href="http://dlmf.nist.gov/22" target="_top">Digital Library of Mathematical Functions:
+          Jacobian Elliptic Functions</a>
+        </p></div>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../jacobi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_elliptic.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cd.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function cd</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">
+<link rel="next" href="jacobi_cn.html" title="Jacobi Elliptic Function cn">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_elliptic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_cd">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_cd"></a><a class="link" href="jacobi_cd.html" title="Jacobi Elliptic Function cd">Jacobi Elliptic Function
+      cd</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cd.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cd.synopsis"></a></span><a class="link" href="jacobi_cd.html#math_toolkit.jacobi.jacobi_cd.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cd.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cd.description"></a></span><a class="link" href="jacobi_cd.html#math_toolkit.jacobi.jacobi_cd.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>cd</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>cd(u, k) = cn(u, k) / dn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_cd.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_elliptic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cn.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function cn</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_cd.html" title="Jacobi Elliptic Function cd">
+<link rel="next" href="jacobi_cs.html" title="Jacobi Elliptic Function cs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_cn">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_cn"></a><a class="link" href="jacobi_cn.html" title="Jacobi Elliptic Function cn">Jacobi Elliptic Function
+      cn</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cn.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cn.synopsis"></a></span><a class="link" href="jacobi_cn.html#math_toolkit.jacobi.jacobi_cn.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cn.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cn.description"></a></span><a class="link" href="jacobi_cn.html#math_toolkit.jacobi.jacobi_cn.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>cn</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_cn.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cs.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_cs.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function cs</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_cn.html" title="Jacobi Elliptic Function cn">
+<link rel="next" href="jacobi_dc.html" title="Jacobi Elliptic Function dc">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cn.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_dc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_cs">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_cs"></a><a class="link" href="jacobi_cs.html" title="Jacobi Elliptic Function cs">Jacobi Elliptic Function
+      cs</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cs.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cs.synopsis"></a></span><a class="link" href="jacobi_cs.html#math_toolkit.jacobi.jacobi_cs.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cs</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_cs</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_cs.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_cs.description"></a></span><a class="link" href="jacobi_cs.html#math_toolkit.jacobi.jacobi_cs.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>cs</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>cs(u, k) = cn(u, k) / sn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_cs.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cn.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_dc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function dc</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_cs.html" title="Jacobi Elliptic Function cs">
+<link rel="next" href="jacobi_dn.html" title="Jacobi Elliptic Function dn">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_dn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_dc">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_dc"></a><a class="link" href="jacobi_dc.html" title="Jacobi Elliptic Function dc">Jacobi Elliptic Function
+      dc</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_dc.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_dc.synopsis"></a></span><a class="link" href="jacobi_dc.html#math_toolkit.jacobi.jacobi_dc.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_dc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_dc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_dc.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_dc.description"></a></span><a class="link" href="jacobi_dc.html#math_toolkit.jacobi.jacobi_dc.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>dc</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>dc(u, k) = dn(u, k) / cn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_dc.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_cs.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_dn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_dn.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function dn</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_dc.html" title="Jacobi Elliptic Function dc">
+<link rel="next" href="jacobi_ds.html" title="Jacobi Elliptic Function ds">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_dc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_ds.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_dn">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_dn"></a><a class="link" href="jacobi_dn.html" title="Jacobi Elliptic Function dn">Jacobi Elliptic Function
+      dn</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_dn.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_dn.synopsis"></a></span><a class="link" href="jacobi_dn.html#math_toolkit.jacobi.jacobi_dn.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_dn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_dn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_dn.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_dn.description"></a></span><a class="link" href="jacobi_dn.html#math_toolkit.jacobi.jacobi_dn.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>dn</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_dn.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_dc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_ds.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ds.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ds.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function ds</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_dn.html" title="Jacobi Elliptic Function dn">
+<link rel="next" href="jacobi_nc.html" title="Jacobi Elliptic Function nc">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_dn.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_nc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_ds">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_ds"></a><a class="link" href="jacobi_ds.html" title="Jacobi Elliptic Function ds">Jacobi Elliptic Function
+      ds</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_ds.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_ds.synopsis"></a></span><a class="link" href="jacobi_ds.html#math_toolkit.jacobi.jacobi_ds.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_ds</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_ds</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_ds.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_ds.description"></a></span><a class="link" href="jacobi_ds.html#math_toolkit.jacobi.jacobi_ds.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>ds</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>ds(u, k) = dn(u, k) / sn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_ds.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_dn.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_nc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_elliptic.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_elliptic.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,292 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic SN, CN and DN</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jac_over.html" title="Overvew of the Jacobi Elliptic Functions">
+<link rel="next" href="jacobi_cd.html" title="Jacobi Elliptic Function cd">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jac_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_elliptic">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_elliptic"></a><a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">Jacobi Elliptic
+      SN, CN and DN</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_elliptic.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_elliptic.synopsis"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.jacobi.jacobi_elliptic.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_elliptic</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">V</span><span class="special">*</span> <span class="identifier">pcn</span><span class="special">,</span> <span class="identifier">V</span><span class="special">*</span> <span class="identifier">pdn</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_elliptic</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="identifier">V</span><span class="special">*</span> <span class="identifier">pcn</span><span class="special">,</span> <span class="identifier">V</span><span class="special">*</span> <span class="identifier">pdn</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_elliptic.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_elliptic.description"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.jacobi.jacobi_elliptic.description">Description</a>
+      </h5>
+<p>
+        The function <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>
+        calculates the three copolar Jacobi elliptic functions <span class="emphasis"><em>sn(u, k)</em></span>,
+        <span class="emphasis"><em>cn(u, k)</em></span> and <span class="emphasis"><em>dn(u, k)</em></span>. The returned
+        value is <span class="emphasis"><em>sn(u, k)</em></span>, and if provided, <span class="emphasis"><em>*pcn</em></span>
+        is set to <span class="emphasis"><em>cn(u, k)</em></span>, and <span class="emphasis"><em>*pdn</em></span> is
+        set to <span class="emphasis"><em>dn(u, k)</em></span>.
+      </p>
+<p>
+        The functions are defined as follows, given:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/jacobi1.png"></span>
+      </p>
+<p>
+        The the angle φ is called the <span class="emphasis"><em>amplitude</em></span> and:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/jacobi2.png"></span>
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          <span class="emphasis"><em>φ</em></span> is called the amplitude.
+        </p>
+<p>
+          <span class="emphasis"><em>k</em></span> is called the modulus.
+        </p>
+</td></tr>
+</table></div>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          Rather like other elliptic functions, the Jacobi functions are expressed
+          in a variety of different ways. In particular, the parameter <span class="emphasis"><em>k</em></span>
+          (the modulus) may also be expressed using a modular angle α, or a parameter
+          <span class="emphasis"><em>m</em></span>. These are related by:
+        </p>
+<p>
+          k = sinα
+        </p>
+<p>
+          m = k<sup>2</sup> = sin<sup>2</sup>α
+        </p>
+<p>
+          So that the function <span class="emphasis"><em>sn</em></span> (for example) may be expressed
+          as either:
+        </p>
+<p>
+          sn(u, k)
+        </p>
+<p>
+          sn(u \ α)
+        </p>
+<p>
+          sn(u| m)
+        </p>
+<p>
+          To further complicate matters, some texts refer to the <span class="emphasis"><em>complement
+          of the parameter m</em></span>, or 1 - m, where:
+        </p>
+<p>
+          1 - m = 1 - k<sup>2</sup> = cos<sup>2</sup>α
+        </p>
+<p>
+          This implementation uses <span class="emphasis"><em>k</em></span> throughout, and makes this
+          the first argument to the functions: this is for alignment with the elliptic
+          integrals which match the requirements of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+          Report on C++ Library Extensions</a>. However, you should be extra
+          careful when using these functions!
+        </p>
+</td></tr>
+</table></div>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graphs illustrate how these functions change as <span class="emphasis"><em>k</em></span>
+        changes: for small <span class="emphasis"><em>k</em></span> these are sine waves, while as
+        <span class="emphasis"><em>k</em></span> tends to 1 they become hyperbolic functions:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_sn.png" align="middle"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_cn.png" align="middle"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_dn.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_elliptic.h2"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_elliptic.accuracy"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.jacobi.jacobi_elliptic.accuracy">Accuracy</a>
+      </h5>
+<p>
+        These functions are computed using only basic arithmetic operations and trigomometric
+        functions, so there isn't much variation in accuracy over differing platforms.
+        Typically errors are trivially small for small angles, and as is typical
+        for cyclic functions, grow as the angle increases. Note that only results
+        for the widest floating point type on the system are given as narrower types
+        have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively zero
+        error</a>. All values are relative errors in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.jacobi.jacobi_elliptic.errors_rates_in_the_jacobi_ellip"></a><p class="title"><b>Table 3.29. Errors Rates in the Jacobi Elliptic Functions</b></p>
+<div class="table-contents"><table class="table" summary="Errors Rates in the Jacobi Elliptic Functions">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  u < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  Large u
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 / Visual C++ 8.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=44000 Mean=2500
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Ubuntu Linux / G++ 4.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.0 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=25000 Mean=1500
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.jacobi.jacobi_elliptic.h3"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_elliptic.testing"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.jacobi.jacobi_elliptic.testing">Testing</a>
+      </h5>
+<p>
+        The tests use a mixture of spot test values calculated using the online calculator
+        at functions.wolfram.com,
+        and random test data generated using MPFR at 1000-bit precision and this
+        implementation.
+      </p>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_elliptic.h4"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_elliptic.implementation"></a></span><a class="link" href="jacobi_elliptic.html#math_toolkit.jacobi.jacobi_elliptic.implementation">Implementation</a>
+      </h5>
+<p>
+        For <span class="emphasis"><em>k > 1</em></span> we apply the relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/jacobi3.png"></span>
+      </p>
+<p>
+        Then filter off the special cases:
+      </p>
+<p>
+        <span class="emphasis"><em>sn(0, k) = 0</em></span> and <span class="emphasis"><em>cn(0, k) = dn(0, k) = 1</em></span>.
+      </p>
+<p>
+        <span class="emphasis"><em>sn(u, 0) = sin(u), cn(u, 0) = cos(u) and dn(u, 0) = 1</em></span>.
+      </p>
+<p>
+        <span class="emphasis"><em>sn(u, 1) = tanh(u), cn(u, 1) = dn(u, 1) = 1 / cosh(u)</em></span>.
+      </p>
+<p>
+        And for <span class="emphasis"><em>k<sup>4</sup> < ε</em></span> we have:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/jacobi4.png"></span>
+      </p>
+<p>
+        Otherwise the values are calculated using the method of <a href="http://dlmf.nist.gov/22.20#SS2" target="_top">arithmetic
+        geometric means</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jac_over.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_cd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function nc</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_ds.html" title="Jacobi Elliptic Function ds">
+<link rel="next" href="jacobi_nd.html" title="Jacobi Elliptic Function nd">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_ds.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_nd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_nc">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_nc"></a><a class="link" href="jacobi_nc.html" title="Jacobi Elliptic Function nc">Jacobi Elliptic Function
+      nc</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_nc.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_nc.synopsis"></a></span><a class="link" href="jacobi_nc.html#math_toolkit.jacobi.jacobi_nc.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_nc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_nc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_nc.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_nc.description"></a></span><a class="link" href="jacobi_nc.html#math_toolkit.jacobi.jacobi_nc.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>nc</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>nc(u, k) = 1 / cn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_nc.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_ds.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_nd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_nd.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function nd</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_nc.html" title="Jacobi Elliptic Function nc">
+<link rel="next" href="jacobi_ns.html" title="Jacobi Elliptic Function ns">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_nc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_ns.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_nd">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_nd"></a><a class="link" href="jacobi_nd.html" title="Jacobi Elliptic Function nd">Jacobi Elliptic Function
+      nd</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_nd.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_nd.synopsis"></a></span><a class="link" href="jacobi_nd.html#math_toolkit.jacobi.jacobi_nd.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_nd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_nd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_nd.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_nd.description"></a></span><a class="link" href="jacobi_nd.html#math_toolkit.jacobi.jacobi_nd.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>nd</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>nd(u, k) = 1 / dn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_nd.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_nc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_ns.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ns.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_ns.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function ns</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_nd.html" title="Jacobi Elliptic Function nd">
+<link rel="next" href="jacobi_sc.html" title="Jacobi Elliptic Function sc">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_nd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_ns">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_ns"></a><a class="link" href="jacobi_ns.html" title="Jacobi Elliptic Function ns">Jacobi Elliptic Function
+      ns</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_ns.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_ns.synopsis"></a></span><a class="link" href="jacobi_ns.html#math_toolkit.jacobi.jacobi_ns.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_ns</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_ns</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_ns.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_ns.description"></a></span><a class="link" href="jacobi_ns.html#math_toolkit.jacobi.jacobi_ns.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>ns</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>ns(u, k) = 1 / sn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_ns.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_nd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function sc</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_ns.html" title="Jacobi Elliptic Function ns">
+<link rel="next" href="jacobi_sd.html" title="Jacobi Elliptic Function sd">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_ns.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_sc">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_sc"></a><a class="link" href="jacobi_sc.html" title="Jacobi Elliptic Function sc">Jacobi Elliptic Function
+      sc</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sc.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sc.synopsis"></a></span><a class="link" href="jacobi_sc.html#math_toolkit.jacobi.jacobi_sc.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sc.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sc.description"></a></span><a class="link" href="jacobi_sc.html#math_toolkit.jacobi.jacobi_sc.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>sc</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>sc(u, k) = sn(u, k) / cn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_sc.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_ns.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sd.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sd.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sd.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function sd</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_sc.html" title="Jacobi Elliptic Function sc">
+<link rel="next" href="jacobi_sn.html" title="Jacobi Elliptic Function sn">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_sc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_sd">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_sd"></a><a class="link" href="jacobi_sd.html" title="Jacobi Elliptic Function sd">Jacobi Elliptic Function
+      sd</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sd.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sd.synopsis"></a></span><a class="link" href="jacobi_sd.html#math_toolkit.jacobi.jacobi_sd.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sd</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sd.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sd.description"></a></span><a class="link" href="jacobi_sd.html#math_toolkit.jacobi.jacobi_sd.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>sd</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>,
+        with:
+      </p>
+<p>
+        <span class="emphasis"><em>sd(u, k) = sn(u, k) / dn(u, k)</em></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_sd.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_sc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="jacobi_sn.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sn.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/jacobi/jacobi_sn.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Jacobi Elliptic Function sn</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../jacobi.html" title="Jacobi Elliptic Functions">
+<link rel="prev" href="jacobi_sd.html" title="Jacobi Elliptic Function sd">
+<link rel="next" href="../zetas.html" title="Zeta Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_sd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../zetas.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_jacobi_jacobi_sn">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.jacobi.jacobi_sn"></a><a class="link" href="jacobi_sn.html" title="Jacobi Elliptic Function sn">Jacobi Elliptic Function
+      sn</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sn.h0"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sn.synopsis"></a></span><a class="link" href="jacobi_sn.html#math_toolkit.jacobi.jacobi_sn.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">jacobi_elliptic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">);</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+ <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">jacobi_sn</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">U</span> <span class="identifier">u</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">pol</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.jacobi.jacobi_sn.h1"></a>
+        <span class="phrase"><a name="math_toolkit.jacobi.jacobi_sn.description"></a></span><a class="link" href="jacobi_sn.html#math_toolkit.jacobi.jacobi_sn.description">Description</a>
+      </h5>
+<p>
+        This function returns the Jacobi elliptic function <span class="emphasis"><em>sn</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is a trivial wrapper around <a class="link" href="jacobi_elliptic.html" title="Jacobi Elliptic SN, CN and DN">jacobi_elliptic</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/jacobi_sn.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi_sd.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../jacobi.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../zetas.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/lanczos.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/lanczos.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,567 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Lanczos Approximation</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="prev" href="relative_error.html" title="Relative Error">
+<link rel="next" href="remez.html" title="The Remez Method">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="relative_error.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="remez.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_lanczos">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.lanczos"></a><a class="link" href="lanczos.html" title="The Lanczos Approximation">The Lanczos Approximation</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.lanczos.h0"></a>
+      <span class="phrase"><a name="math_toolkit.lanczos.motivation"></a></span><a class="link" href="lanczos.html#math_toolkit.lanczos.motivation">Motivation</a>
+    </h5>
+<p>
+      <span class="emphasis"><em>Why base gamma and gamma-like functions on the Lanczos approximation?</em></span>
+    </p>
+<p>
+      First of all I should make clear that for the gamma function over real numbers
+      (as opposed to complex ones) the Lanczos approximation (See <a href="http://en.wikipedia.org/wiki/Lanczos_approximation" target="_top">Wikipedia
+      or </a> Mathworld)
+      appears to offer no clear advantage over more traditional methods such as
+      <a href="http://en.wikipedia.org/wiki/Stirling_approximation" target="_top">Stirling's
+      approximation</a>. <a class="link" href="lanczos.html#pugh">Pugh</a> carried out an extensive
+      comparison of the various methods available and discovered that they were all
+      very similar in terms of complexity and relative error. However, the Lanczos
+      approximation does have a couple of properties that make it worthy of further
+      consideration:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          The approximation has an easy to compute truncation error that holds for
+          all <span class="emphasis"><em>z > 0</em></span>. In practice that means we can use the
+          same approximation for all <span class="emphasis"><em>z > 0</em></span>, and be certain
+          that no matter how large or small <span class="emphasis"><em>z</em></span> is, the truncation
+          error will <span class="emphasis"><em>at worst</em></span> be bounded by some finite value.
+        </li>
+<li class="listitem">
+          The approximation has a form that is particularly amenable to analytic
+          manipulation, in particular ratios of gamma or gamma-like functions are
+          particularly easy to compute without resorting to logarithms.
+        </li>
+</ul></div>
+<p>
+      It is the combination of these two properties that make the approximation attractive:
+      Stirling's approximation is highly accurate for large z, and has some of the
+      same analytic properties as the Lanczos approximation, but can't easily be
+      used across the whole range of z.
+    </p>
+<p>
+      As the simplest example, consider the ratio of two gamma functions: one could
+      compute the result via lgamma:
+    </p>
+<pre class="programlisting"><span class="identifier">exp</span><span class="special">(</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">b</span><span class="special">));</span>
+</pre>
+<p>
+      However, even if lgamma is uniformly accurate to 0.5ulp, the worst case relative
+      error in the above can easily be shown to be:
+    </p>
+<pre class="programlisting"><span class="identifier">Erel</span> <span class="special">></span> <span class="identifier">a</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">a</span><span class="special">)/</span><span class="number">2</span> <span class="special">+</span> <span class="identifier">b</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">b</span><span class="special">)/</span><span class="number">2</span>
+</pre>
+<p>
+      For small <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span> that's not a problem,
+      but to put the relationship another way: <span class="emphasis"><em>each time a and b increase
+      in magnitude by a factor of 10, at least one decimal digit of precision will
+      be lost.</em></span>
+    </p>
+<p>
+      In contrast, by analytically combining like power terms in a ratio of Lanczos
+      approximation's, these errors can be virtually eliminated for small <span class="emphasis"><em>a</em></span>
+      and <span class="emphasis"><em>b</em></span>, and kept under control for very large (or very
+      small for that matter) <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>. Of
+      course, computing large powers is itself a notoriously hard problem, but even
+      so, analytic combinations of Lanczos approximations can make the difference
+      between obtaining a valid result, or simply garbage. Refer to the implementation
+      notes for the <a class="link" href="sf_beta/beta_function.html" title="Beta">beta</a>
+      function for an example of this method in practice. The incomplete <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p
+      gamma</a> and <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">beta</a>
+      functions use similar analytic combinations of power terms, to combine gamma
+      and beta functions divided by large powers into single (simpler) expressions.
+    </p>
+<h5>
+<a name="math_toolkit.lanczos.h1"></a>
+      <span class="phrase"><a name="math_toolkit.lanczos.the_approximation"></a></span><a class="link" href="lanczos.html#math_toolkit.lanczos.the_approximation">The
+      Approximation</a>
+    </h5>
+<p>
+      The Lanczos Approximation to the Gamma Function is given by:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos0.png"></span>
+    </p>
+<p>
+      Where S<sub>g</sub>(z) is an infinite sum, that is convergent for all z > 0, and <span class="emphasis"><em>g</em></span>
+      is an arbitrary parameter that controls the "shape" of the terms
+      in the sum which is given by:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos0a.png"></span>
+    </p>
+<p>
+      With individual coefficients defined in closed form by:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos0b.png"></span>
+    </p>
+<p>
+      However, evaluation of the sum in that form can lead to numerical instability
+      in the computation of the ratios of rising and falling factorials (effectively
+      we're multiplying by a series of numbers very close to 1, so roundoff errors
+      can accumulate quite rapidly).
+    </p>
+<p>
+      The Lanczos approximation is therefore often written in partial fraction form
+      with the leading constants absorbed by the coefficients in the sum:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos1.png"></span>
+    </p>
+<p>
+      where:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos2.png"></span>
+    </p>
+<p>
+      Again parameter <span class="emphasis"><em>g</em></span> is an arbitrarily chosen constant, and
+      <span class="emphasis"><em>N</em></span> is an arbitrarily chosen number of terms to evaluate
+      in the "Lanczos sum" part.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Some authors choose to define the sum from k=1 to N, and hence end up with
+        N+1 coefficients. This happens to confuse both the following discussion and
+        the code (since C++ deals with half open array ranges, rather than the closed
+        range of the sum). This convention is consistent with <a class="link" href="lanczos.html#godfrey">Godfrey</a>,
+        but not <a class="link" href="lanczos.html#pugh">Pugh</a>, so take care when referring to
+        the literature in this field.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.lanczos.h2"></a>
+      <span class="phrase"><a name="math_toolkit.lanczos.computing_the_coefficients"></a></span><a class="link" href="lanczos.html#math_toolkit.lanczos.computing_the_coefficients">Computing
+      the Coefficients</a>
+    </h5>
+<p>
+      The coefficients C0..CN-1 need to be computed from <span class="emphasis"><em>N</em></span> and
+      <span class="emphasis"><em>g</em></span> at high precision, and then stored as part of the program.
+      Calculation of the coefficients is performed via the method of <a class="link" href="lanczos.html#godfrey">Godfrey</a>;
+      let the constants be contained in a column vector P, then:
+    </p>
+<p>
+      P = D B C F
+    </p>
+<p>
+      where B is an NxN matrix:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos4.png"></span>
+    </p>
+<p>
+      D is an NxN matrix:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos3.png"></span>
+    </p>
+<p>
+      C is an NxN matrix:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos5.png"></span>
+    </p>
+<p>
+      and F is an N element column vector:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos6.png"></span>
+    </p>
+<p>
+      Note than the matrices B, D and C contain all integer terms and depend only
+      on <span class="emphasis"><em>N</em></span>, this product should be computed first, and then
+      multiplied by <span class="emphasis"><em>F</em></span> as the last step.
+    </p>
+<h5>
+<a name="math_toolkit.lanczos.h3"></a>
+      <span class="phrase"><a name="math_toolkit.lanczos.choosing_the_right_parameters"></a></span><a class="link" href="lanczos.html#math_toolkit.lanczos.choosing_the_right_parameters">Choosing
+      the Right Parameters</a>
+    </h5>
+<p>
+      The trick is to choose <span class="emphasis"><em>N</em></span> and <span class="emphasis"><em>g</em></span> to
+      give the desired level of accuracy: choosing a small value for <span class="emphasis"><em>g</em></span>
+      leads to a strictly convergent series, but one which converges only slowly.
+      Choosing a larger value of <span class="emphasis"><em>g</em></span> causes the terms in the series
+      to be large and/or divergent for about the first <span class="emphasis"><em>g-1</em></span> terms,
+      and to then suddenly converge with a "crunch".
+    </p>
+<p>
+      <a class="link" href="lanczos.html#pugh">Pugh</a> has determined the optimal value of <span class="emphasis"><em>g</em></span>
+      for <span class="emphasis"><em>N</em></span> in the range <span class="emphasis"><em>1 <= N <= 60</em></span>:
+      unfortunately in practice choosing these values leads to cancellation errors
+      in the Lanczos sum as the largest term in the (alternating) series is approximately
+      1000 times larger than the result. These optimal values appear not to be useful
+      in practice unless the evaluation can be done with a number of guard digits
+      <span class="emphasis"><em>and</em></span> the coefficients are stored at higher precision than
+      that desired in the result. These values are best reserved for say, computing
+      to float precision with double precision arithmetic.
+    </p>
+<div class="table">
+<a name="math_toolkit.lanczos.optimal_choices_for_n_and_g_when"></a><p class="title"><b>Table 15.1. Optimal choices for N and g when computing with guard digits (source:
+      Pugh)</b></p>
+<div class="table-contents"><table class="table" summary="Optimal choices for N and g when computing with guard digits (source:
+      Pugh)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Significand Size
+              </p>
+            </th>
+<th>
+              <p>
+                N
+              </p>
+            </th>
+<th>
+              <p>
+                g
+              </p>
+            </th>
+<th>
+              <p>
+                Max Error
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                24
+              </p>
+            </td>
+<td>
+              <p>
+                6
+              </p>
+            </td>
+<td>
+              <p>
+                5.581
+              </p>
+            </td>
+<td>
+              <p>
+                9.51e-12
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                53
+              </p>
+            </td>
+<td>
+              <p>
+                13
+              </p>
+            </td>
+<td>
+              <p>
+                13.144565
+              </p>
+            </td>
+<td>
+              <p>
+                9.2213e-23
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+      The alternative described by <a class="link" href="lanczos.html#godfrey">Godfrey</a> is to perform
+      an exhaustive search of the <span class="emphasis"><em>N</em></span> and <span class="emphasis"><em>g</em></span>
+      parameter space to determine the optimal combination for a given <span class="emphasis"><em>p</em></span>
+      digit floating-point type. Repeating this work found a good approximation for
+      double precision arithmetic (close to the one <a class="link" href="lanczos.html#godfrey">Godfrey</a>
+      found), but failed to find really good approximations for 80 or 128-bit long
+      doubles. Further it was observed that the approximations obtained tended to
+      optimised for the small values of z (1 < z < 200) used to test the implementation
+      against the factorials. Computing ratios of gamma functions with large arguments
+      were observed to suffer from error resulting from the truncation of the Lancozos
+      series.
+    </p>
+<p>
+      <a class="link" href="lanczos.html#pugh">Pugh</a> identified all the locations where the theoretical
+      error of the approximation were at a minimum, but unfortunately has published
+      only the largest of these minima. However, he makes the observation that the
+      minima coincide closely with the location where the first neglected term (a<sub>N</sub>)
+      in the Lanczos series S<sub>g</sub>(z) changes sign. These locations are quite easy to
+      locate, albeit with considerable computer time. These "sweet spots"
+      need only be computed once, tabulated, and then searched when required for
+      an approximation that delivers the required precision for some fixed precision
+      type.
+    </p>
+<p>
+      Unfortunately, following this path failed to find a really good approximation
+      for 128-bit long doubles, and those found for 64 and 80-bit reals required
+      an excessive number of terms. There are two competing issues here: high precision
+      requires a large value of <span class="emphasis"><em>g</em></span>, but avoiding cancellation
+      errors in the evaluation requires a small <span class="emphasis"><em>g</em></span>.
+    </p>
+<p>
+      At this point note that the Lanczos sum can be converted into rational form
+      (a ratio of two polynomials, obtained from the partial-fraction form using
+      polynomial arithmetic), and doing so changes the coefficients so that <span class="emphasis"><em>they
+      are all positive</em></span>. That means that the sum in rational form can be
+      evaluated without cancellation error, albeit with double the number of coefficients
+      for a given N. Repeating the search of the "sweet spots", this time
+      evaluating the Lanczos sum in rational form, and testing only those "sweet
+      spots" whose theoretical error is less than the machine epsilon for the
+      type being tested, yielded good approximations for all the types tested. The
+      optimal values found were quite close to the best cases reported by <a class="link" href="lanczos.html#pugh">Pugh</a>
+      (just slightly larger <span class="emphasis"><em>N</em></span> and slightly smaller <span class="emphasis"><em>g</em></span>
+      for a given precision than <a class="link" href="lanczos.html#pugh">Pugh</a> reports), and even
+      though converting to rational form doubles the number of stored coefficients,
+      it should be noted that half of them are integers (and therefore require less
+      storage space) and the approximations require a smaller <span class="emphasis"><em>N</em></span>
+      than would otherwise be required, so fewer floating point operations may be
+      required overall.
+    </p>
+<p>
+      The following table shows the optimal values for <span class="emphasis"><em>N</em></span> and
+      <span class="emphasis"><em>g</em></span> when computing at fixed precision. These should be taken
+      as work in progress: there are no values for 106-bit significand machines (Darwin
+      long doubles & NTL quad_float), and further optimisation of the values
+      of <span class="emphasis"><em>g</em></span> may be possible. Errors given in the table are estimates
+      of the error due to truncation of the Lanczos infinite series to <span class="emphasis"><em>N</em></span>
+      terms. They are calculated from the sum of the first five neglected terms -
+      and are known to be rather pessimistic estimates - although it is noticeable
+      that the best combinations of <span class="emphasis"><em>N</em></span> and <span class="emphasis"><em>g</em></span>
+      occurred when the estimated truncation error almost exactly matches the machine
+      epsilon for the type in question.
+    </p>
+<div class="table">
+<a name="math_toolkit.lanczos.optimum_value_for_n_and_g_when_c"></a><p class="title"><b>Table 15.2. Optimum value for N and g when computing at fixed precision</b></p>
+<div class="table-contents"><table class="table" summary="Optimum value for N and g when computing at fixed precision">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Significand Size
+              </p>
+            </th>
+<th>
+              <p>
+                Platform/Compiler Used
+              </p>
+            </th>
+<th>
+              <p>
+                N
+              </p>
+            </th>
+<th>
+              <p>
+                g
+              </p>
+            </th>
+<th>
+              <p>
+                Max Truncation Error
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                24
+              </p>
+            </td>
+<td>
+              <p>
+                Win32, VC++ 7.1
+              </p>
+            </td>
+<td>
+              <p>
+                6
+              </p>
+            </td>
+<td>
+              <p>
+                1.428456135094165802001953125
+              </p>
+            </td>
+<td>
+              <p>
+                9.41e-007
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                53
+              </p>
+            </td>
+<td>
+              <p>
+                Win32, VC++ 7.1
+              </p>
+            </td>
+<td>
+              <p>
+                13
+              </p>
+            </td>
+<td>
+              <p>
+                6.024680040776729583740234375
+              </p>
+            </td>
+<td>
+              <p>
+                3.23e-016
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                64
+              </p>
+            </td>
+<td>
+              <p>
+                Suse Linux 9 IA64, gcc-3.3.3
+              </p>
+            </td>
+<td>
+              <p>
+                17
+              </p>
+            </td>
+<td>
+              <p>
+                12.2252227365970611572265625
+              </p>
+            </td>
+<td>
+              <p>
+                2.34e-024
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                116
+              </p>
+            </td>
+<td>
+              <p>
+                HP Tru64 Unix 5.1B / Alpha, Compaq C++ V7.1-006
+              </p>
+            </td>
+<td>
+              <p>
+                24
+              </p>
+            </td>
+<td>
+              <p>
+                20.3209821879863739013671875
+              </p>
+            </td>
+<td>
+              <p>
+                4.75e-035
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+      Finally note that the Lanczos approximation can be written as follows by removing
+      a factor of exp(g) from the denominator, and then dividing all the coefficients
+      by exp(g):
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/lanczos7.png"></span>
+    </p>
+<p>
+      This form is more convenient for calculating lgamma, but for the gamma function
+      the division by <span class="emphasis"><em>e</em></span> turns a possibly exact quality into
+      an inexact value: this reduces accuracy in the common case that the input is
+      exact, and so isn't used for the gamma function.
+    </p>
+<h5>
+<a name="math_toolkit.lanczos.h4"></a>
+      <span class="phrase"><a name="math_toolkit.lanczos.references"></a></span><a class="link" href="lanczos.html#math_toolkit.lanczos.references">References</a>
+    </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          <a name="godfrey"></a>Paul Godfrey, <a href="http://my.fit.edu/~gabdo/gamma.txt" target="_top">"A
+          note on the computation of the convergent Lanczos complex Gamma approximation"</a>.
+        </li>
+<li class="listitem">
+          <a name="pugh"></a>Glendon Ralph Pugh, <a href="http://bh0.physics.ubc.ca/People/matt/Doc/ThesesOthers/Phd/pugh.pdf" target="_top">"An
+          Analysis of the Lanczos Gamma Approximation"</a>, PhD Thesis November
+          2004.
+        </li>
+<li class="listitem">
+          Viktor T. Toth, <a href="http://www.rskey.org/gamma.htm" target="_top">"Calculators
+          and the Gamma Function"</a>.
+        </li>
+<li class="listitem">
+          Mathworld, <a href="http://mathworld.wolfram.com/LanczosApproximation.html" target="_top">The
+          Lanczos Approximation</a>.
+        </li>
+</ol></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="relative_error.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="remez.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/lcm_function_object.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/lcm_function_object.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>LCM Function Object</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="gcd_function_object.html" title="GCD Function Object">
+<link rel="next" href="run_time.html" title="Run-time GCD & LCM Determination">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="gcd_function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="run_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_lcm_function_object">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.lcm_function_object"></a><a class="link" href="lcm_function_object.html" title="LCM Function Object">LCM Function Object</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm_evaluator</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="comment">// Types</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">result_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">first_argument_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="identifier">IntegerType</span>  <span class="identifier">second_argument_type</span><span class="special">;</span>
+
+   <span class="comment">// Function object interface</span>
+   <span class="identifier">result_type</span>  <span class="keyword">operator</span> <span class="special">()(</span> <span class="identifier">first_argument_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span>
+   <span class="identifier">second_argument_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+      The boost::math::lcm_evaluator class template defines a function object class
+      to return the least common multiple of two integers. The template is parameterized
+      by a single type, called IntegerType here. This type should be a numeric type
+      that represents integers. The result of the function object is always nonnegative,
+      even if either of the operator arguments is negative. If the least common multiple
+      is beyond the range of the integer type, the results are undefined.
+    </p>
+<p>
+      This function object class template is used in the corresponding version of
+      the LCM function template. If a numeric type wants to customize evaluations
+      of its least common multiples, then the type should specialize on the lcm_evaluator
+      class template.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gcd_function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="run_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/mem_fun.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/mem_fun.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,226 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Member Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="mem_typedef.html" title="Quaternion Member Typedefs">
+<link rel="next" href="non_mem.html" title="Quaternion Non-Member Operators">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="mem_typedef.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="non_mem.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_mem_fun">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.mem_fun"></a><a class="link" href="mem_fun.html" title="Quaternion Member Functions">Quaternion Member Functions</a>
+</h2></div></div></div>
+<h4>
+<a name="math_toolkit.mem_fun.h0"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.constructors"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">Constructors</a>
+    </h4>
+<p>
+      Template version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <
span class="special">=</span> <span class="identifier">T</span><span class="special">());</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</s
pan><span class="special">>());</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Float specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span 
class="special">=</span> <span class="number">0.0f</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">&
gt;());</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span
 class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">dou
ble</span><span class="special">>());</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Long double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="key
word">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span>	<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span
><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      A default constructor is provided for each form, which initializes each component
+      to the default values for their type (i.e. zero for floating numbers). This
+      constructor can also accept one to four base type arguments. A constructor
+      is also provided to build quaternions from one or two complex numbers sharing
+      the same base type. The unspecialized template also sports a templarized copy
+      constructor, while the specialized forms have copy constructors from the other
+      two specializations, which are explicit when a risk of precision loss exists.
+      For the unspecialized form, the base type's constructors must not throw.
+    </p>
+<p>
+      Destructors and untemplated copy constructors (from the same type) are provided
+      by the compiler. Converting copy constructors make use of a templated helper
+      function in a "detail" subnamespace.
+    </p>
+<h4>
+<a name="math_toolkit.mem_fun.h1"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.other_member_functions"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.other_member_functions">Other
+      member functions</a>
+    </h4>
+<h5>
+<a name="math_toolkit.mem_fun.h2"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.real_and_unreal_parts"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">Real
+      and Unreal Parts</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">T</span>             <span class="identifier">real</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">unreal</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      Like complex number, quaternions do have a meaningful notion of "real
+      part", but unlike them there is no meaningful notion of "imaginary
+      part". Instead there is an "unreal part" which itself is a quaternion,
+      and usually nothing simpler (as opposed to the complex number case). These
+      are returned by the first two functions.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h3"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.individual_real_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">Individual
+      Real Components</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span> <span class="identifier">R_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span> <span class="identifier">R_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span> <span class="identifier">R_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      A quaternion having four real components, these are returned by these four
+      functions. Hence real and R_component_1 return the same value.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h4"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.individual_complex_components"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">Individual
+      Complex Components</a>
+    </h5>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="identifier">C_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      A quaternion likewise has two complex components, and as we have seen above,
+      for any quaternion <span class="emphasis"><em><code class="literal">q = α + βi + γj + δk</code></em></span> we also have
+      <span class="emphasis"><em><code class="literal">q = (α + βi) + (γ + δi)j </code></em></span>. These functions return them.
+      The real part of <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">C_component_1</span><span class="special">()</span></code>
+      is the same as <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></code>.
+    </p>
+<h4>
+<a name="math_toolkit.mem_fun.h5"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.quaternion_member_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.quaternion_member_operators">Quaternion
+      Member Operators</a>
+    </h4>
+<h5>
+<a name="math_toolkit.mem_fun.h6"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.assignment_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">Assignment
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the expected assignment, with type modification if necessary
+      (for instance, assigning from a base type will set the real part to that value,
+      and all other components to zero). For the unspecialized form, the base type's
+      assignment operators must not throw.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h7"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.addition_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">Addition
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)+</span><span class="identifier">rhs</span></code>
+      and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+      The unspecialized form has exception guards, which the specialized forms do
+      not, so as to insure exception safety. For the unspecialized form, the base
+      type's assignment operators must not throw.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h8"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.subtraction_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">Subtraction
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)-</span><span class="identifier">rhs</span></code>
+      and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+      The unspecialized form has exception guards, which the specialized forms do
+      not, so as to insure exception safety. For the unspecialized form, the base
+      type's assignment operators must not throw.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h9"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.multiplication_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">Multiplication
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">rhs</span></code>
+      <span class="bold"><strong>in this order</strong></span> (order is important as multiplication
+      is not commutative for quaternions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The unspecialized form has exception guards,
+      which the specialized forms do not, so as to insure exception safety. For the
+      unspecialized form, the base type's assignment operators must not throw.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun.h10"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun.division_operators"></a></span><a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">Division
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">inverse_of</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>
+      <span class="bold"><strong>in this order</strong></span> (order is important as multiplication
+      is not commutative for quaternions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The unspecialized form has exception guards,
+      which the specialized forms do not, so as to insure exception safety. For the
+      unspecialized form, the base type's assignment operators must not throw.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mem_typedef.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="non_mem.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/mem_fun0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/mem_fun0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,249 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Member Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="oct_typedefs.html" title="Octonion Member Typedefs">
+<link rel="next" href="non_mem0.html" title="Octonion Non-Member Operators">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="oct_typedefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="non_mem0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_mem_fun0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.mem_fun0"></a><a class="link" href="mem_fun0.html" title="Octonion Member Functions">Octonion Member Functions</a>
+</h2></div></div></div>
+<h4>
+<a name="math_toolkit.mem_fun0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.constructors"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">Constructors</a>
+    </h4>
+<p>
+      Template version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <s
pan class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="i
dentifier">T</span><span class="special">());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</sp
an><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z3</span> <span class="special">=</span> 
<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier"
>boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>());</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Float specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span c
lass="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0f</
span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float<
/span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z3</span> <span class="special">=</
span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifie
r">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span 
class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0</
span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">doub
le</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z3</span> <span class="specia
l">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identif
ier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      Long double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyw
ord">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0L
</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span>
<span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><
</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="s
pecial">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+<span class="keyword">explicit</span>  <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+</pre>
+<p>
+      A default constructor is provided for each form, which initializes each component
+      to the default values for their type (i.e. zero for floating numbers). This
+      constructor can also accept one to eight base type arguments. A constructor
+      is also provided to build octonions from one to four complex numbers sharing
+      the same base type, and another taking one or two quaternions sharing the same
+      base type. The unspecialized template also sports a templarized copy constructor,
+      while the specialized forms have copy constructors from the other two specializations,
+      which are explicit when a risk of precision loss exists. For the unspecialized
+      form, the base type's constructors must not throw.
+    </p>
+<p>
+      Destructors and untemplated copy constructors (from the same type) are provided
+      by the compiler. Converting copy constructors make use of a templated helper
+      function in a "detail" subnamespace.
+    </p>
+<h4>
+<a name="math_toolkit.mem_fun0.h1"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.other_member_functions"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_functions">Other
+      member functions</a>
+    </h4>
+<h5>
+<a name="math_toolkit.mem_fun0.h2"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.real_and_unreal_parts"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">Real
+      and Unreal Parts</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">T</span>            <span class="identifier">real</span><span class="special">()</span>   <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">unreal</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      Like complex number, octonions do have a meaningful notion of "real part",
+      but unlike them there is no meaningful notion of "imaginary part".
+      Instead there is an "unreal part" which itself is a octonion, and
+      usually nothing simpler (as opposed to the complex number case). These are
+      returned by the first two functions.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun0.h3"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.individual_real_components"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">Individual
+      Real Components</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">T</span>   <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_5</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_6</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_7</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">T</span>   <span class="identifier">R_component_8</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      A octonion having eight real components, these are returned by these eight
+      functions. Hence real and R_component_1 return the same value.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun0.h4"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.individual_complex_components"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">Individual
+      Complex Components</a>
+    </h5>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">C_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">C_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">C_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      A octonion likewise has four complex components. Actually, octonions are indeed
+      a (left) vector field over the complexes, but beware, as for any octonion
+      <span class="emphasis"><em><code class="literal">o = α + βi + γj + δk + εe' + ζi' + ηj' + θk'</code></em></span> we also have <span class="emphasis"><em><code class="literal">o
+      = (α + βi) + (γ + δi)j + (ε + ζi)e' + (η - θi)j'</code></em></span> (note the <span class="bold"><strong>minus</strong></span> sign
+      in the last factor). What the C_component_n functions return, however, are
+      the complexes which could be used to build the octonion using the constructor,
+      and <span class="bold"><strong>not</strong></span> the components of the octonion on
+      the basis <span class="emphasis"><em><code class="literal">(1, j, e', j')</code></em></span>.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun0.h5"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.individual_quaternion_components"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">Individual
+      Quaternion Components</a>
+    </h5>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">H_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">H_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+<p>
+      Likewise, for any octonion <span class="emphasis"><em><code class="literal">o = α + βi + γj + δk + εe' + ζi' + ηj' + θk'</code></em></span> we
+      also have <span class="emphasis"><em><code class="literal">o = (α + βi + γj + δk) + (ε + ζi + ηj - θj)e'</code></em></span>, though there is no
+      meaningful vector-space-like structure based on the quaternions. What the H_component_n
+      functions return are the quaternions which could be used to build the octonion
+      using the constructor.
+    </p>
+<h4>
+<a name="math_toolkit.mem_fun0.h6"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.octonion_member_operators"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.octonion_member_operators">Octonion
+      Member Operators</a>
+    </h4>
+<h5>
+<a name="math_toolkit.mem_fun0.h7"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.assignment_operators"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">Assignment
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the expected assignment, with type modification if necessary
+      (for instance, assigning from a base type will set the real part to that value,
+      and all other components to zero). For the unspecialized form, the base type's
+      assignment operators must not throw.
+    </p>
+<h5>
+<a name="math_toolkit.mem_fun0.h8"></a>
+      <span class="phrase"><a name="math_toolkit.mem_fun0.other_member_operators"></a></span><a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">Other
+      Member Operators</a>
+    </h5>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)+</span><span class="identifier">rhs</span></code>
+      and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+      The unspecialized form has exception guards, which the specialized forms do
+      not, so as to insure exception safety. For the unspecialized form, the base
+      type's assignment operators must not throw.
+    </p>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)-</span><span class="identifier">rhs</span></code>
+      and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
+      The unspecialized form has exception guards, which the specialized forms do
+      not, so as to insure exception safety. For the unspecialized form, the base
+      type's assignment operators must not throw.
+    </p>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">rhs</span></code>
+      in this order (order is important as multiplication is not commutative for
+      octonions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The unspecialized form has exception guards,
+      which the specialized forms do not, so as to insure exception safety. For the
+      unspecialized form, the base type's assignment operators must not throw. Also,
+      for clarity's sake, you should always group the factors in a multiplication
+      by groups of two, as the multiplication is not even associative on the octonions
+      (though there are of course cases where this does not matter, it usually does).
+    </p>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">inverse_of</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>
+      in this order (order is important as multiplication is not commutative for
+      octonions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The unspecialized form has exception guards,
+      which the specialized forms do not, so as to insure exception safety. For the
+      unspecialized form, the base type's assignment operators must not throw. As
+      for the multiplication, remember to group any two factors using parenthesis.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="oct_typedefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="non_mem0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/mem_typedef.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/mem_typedef.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Member Typedefs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="spec.html" title="Quaternion Specializations">
+<link rel="next" href="mem_fun.html" title="Quaternion Member Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="spec.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_fun.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_mem_typedef">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.mem_typedef"></a><a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">Quaternion Member Typedefs</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>value_type</strong></span>
+    </p>
+<p>
+      Template version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Float specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Long double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      These provide easy acces to the type the template is built upon.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="spec.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_fun.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/namespaces.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/namespaces.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Namespaces</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="directories.html" title="Directory and File Structure">
+<link rel="next" href="result_type.html" title="Calculation of the Type of the Result">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="directories.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="result_type.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_namespaces">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.namespaces"></a><a class="link" href="namespaces.html" title="Namespaces">Namespaces</a>
+</h2></div></div></div>
+<p>
+      All math functions and distributions are in <code class="computeroutput"><span class="keyword">namespace</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code>
+    </p>
+<p>
+      So, for example, the Students-t distribution template in <code class="computeroutput"><span class="keyword">namespace</span>
+      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code> is
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">students_t_distribution</span>
+</pre>
+<p>
+      and can be instantiated with the help of the reserved name <code class="computeroutput"><span class="identifier">students_t</span></code>(for
+      <code class="computeroutput"><span class="identifier">RealType</span> <span class="keyword">double</span></code>)
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">students_t_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">students_t</span><span class="special">;</span>
+
+<span class="identifier">student_t</span> <span class="identifier">mydist</span><span class="special">(</span><span class="number">10</span><span class="special">);</span>
+</pre>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Some distribution names are also used in std random library, so to avoid
+        the risk of ambiguity it is better to make explicit using declarations, for
+        example: <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t_distribution</span></code>
+      </p></td></tr>
+</table></div>
+<p>
+      Functions not intended for use by applications are in <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">detail</span></code>.
+    </p>
+<p>
+      Functions that may have more general use, like <code class="computeroutput"><span class="identifier">digits</span></code>
+      (significand), <code class="computeroutput"><span class="identifier">max_value</span></code>,
+      <code class="computeroutput"><span class="identifier">min_value</span></code> and <code class="computeroutput"><span class="identifier">epsilon</span></code> are in <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span></code>.
+    </p>
+<p>
+      <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> and configuration information is in namespace
+      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span></code>.
+    </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Many code snippets assume implicit namespace(s), for example, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span></code> or
+        <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code>.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="directories.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="result_type.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/navigation.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/navigation.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Navigation</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="intro.html" title="About the Math Toolkit">
+<link rel="next" href="conventions.html" title="Document Conventions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="intro.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="conventions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_navigation">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
+</h2></div></div></div>
+<p>
+      <a class="indexterm" name="id852690"></a>
+    </p>
+<p>
+      Boost.Math documentation is provided in both HTML and PDF formats.
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <span class="bold"><strong>Tutorials</strong></span> are listed in the <span class="emphasis"><em>Table
+          of Contents</em></span> and include many examples that should help you get
+          started quickly.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Source code</strong></span> of the many <span class="emphasis"><em>Examples</em></span>
+          will often be your quickest starting point.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Index</strong></span> (general) includes all entries.
+        </li>
+<li class="listitem">
+          <span class="bold"><strong>Specific Indexes</strong></span> list only functions,
+          class signatures, macros and typedefs.
+        </li>
+</ul></div>
+<h6>
+<a name="math_toolkit.navigation.h0"></a>
+      <span class="phrase"><a name="math_toolkit.navigation.using_the_indexes"></a></span><a class="link" href="navigation.html#math_toolkit.navigation.using_the_indexes">Using
+      the Indexes</a>
+    </h6>
+<p>
+      The main index will usually help, especially if you know a word describing
+      what it does, without needing to know the exact name chosen for the function.
+    </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        When using the index, keep in mind that clicking on an index term only takes
+        you to the <span class="bold"><strong>section</strong></span> containing the index
+        entry. This section may be several pages long, so you may need to use the
+        <span class="bold"><strong>find</strong></span> facility of your browser or PDF reader
+        to get to the index term itself.
+      </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        A PDF reader usually allows a <span class="bold"><strong>global</strong></span> find;
+        this can be really useful if the term you expect to be indexed is not the
+        one chosen by the authors. You might find searching the PDF version and viewing
+        the HTML version will locate an elusive item.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="intro.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="conventions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/new_const.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/new_const.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,250 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Defining New Constants</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="prev" href="constants.html" title="The Mathematical Constants">
+<link rel="next" href="FAQ.html" title="FAQs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="constants.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="FAQ.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_new_const">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.new_const"></a><a class="link" href="new_const.html" title="Defining New Constants">Defining New Constants</a>
+</h2></div></div></div>
+<p>
+      The library provides some helper code to assist in defining new constants;
+      the process for defining a constant called <code class="computeroutput"><span class="identifier">my_constant</span></code>
+      goes like this:
+    </p>
+<p>
+      1. <span class="bold"><strong>Define a function that calculates the value of the
+      constant</strong></span>. This should be a template function, and be placed in
+      <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">calculate_constants</span><span class="special">.</span><span class="identifier">hpp</span></code> if the
+      constant is to be added to this library, or else defined at the top of your
+      source file if not.
+    </p>
+<p>
+      The function should look like this:
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">constants</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">></span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span>
+<span class="identifier">Real</span> <span class="identifier">constant_my_constant</span><span class="special"><</span><span class="identifier">Real</span><span class="special">>::</span><span class="identifier">compute</span><span class="special">(</span><span class="identifier">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">>))</span>
+<span class="special">{</span>
+  <span class="keyword">int</span> <span class="identifier">required_precision</span> <span class="special">=</span> <span class="identifier">N</span> <span class="special">?</span> <span class="identifier">N</span> <span class="special">:</span> <span class="identifier">tools</span><span class="special">::</span><span class="identifier">digits</span><span class="special"><</span><span class="identifier">Real</span><span class="special">>();</span>
+  <span class="identifier">Real</span> <span class="identifier">result</span> <span class="special">=</span> <span class="comment">/* value computed to required_precision bits */</span> <span class="special">;</span>
+  <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      Then define a placeholder for the constant itself:
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">constants</span><span class="special">{</span>
+
+<span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">my_constant</span><span class="special">,</span> <span class="number">0.0</span><span class="special">,</span> <span class="string">"0"</span><span class="special">);</span>
+
+<span class="special">}}}</span>
+</pre>
+<p>
+      For example, to calculate π/2, add to <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">calculate_constants</span><span class="special">.</span><span class="identifier">hpp</span></code>
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">constant_half_pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">compute</span><span class="special">(</span><span class="identifier">BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">>))</span>
+<span class="special">{</span>
+   <span class="identifier">BOOST_MATH_STD_USING</span>
+   <span class="keyword">return</span> <span class="identifier">pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span> <span class="special">>()</span> <span class="special">/</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="number">2</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+      Then to <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span></code> add:
+    </p>
+<pre class="programlisting"><span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">half_pi</span><span class="special">,</span> <span class="number">0.0</span><span class="special">,</span> <span class="string">"0"</span><span class="special">);</span>  <span class="comment">// Actual values are temporary, we'll replace them later.</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Previously defined constants like pi and e can be used, but by <span class="bold"><strong>not simply calling</strong></span> <code class="computeroutput"><span class="identifier">pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">>()</span></code>;
+        specifying the precision via the policy <code class="computeroutput"><span class="identifier">pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span>
+        <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span> <span class="special">>()</span></code>
+        is essential to ensure full accuracy.
+      </p></td></tr>
+</table></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+        Newly defined constants can only be used once they are included in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span></code>. So
+        if you add <code class="computeroutput"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">N</span><span class="special">></span> <span class="identifier">T</span> <span class="identifier">constant_my_constant</span><span class="special">{...}</span></code>,
+        then you cannot define <code class="computeroutput"><span class="identifier">constant_my_constant</span></code>
+        until you add the temporary <code class="computeroutput"><span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">my_constant</span><span class="special">,</span> <span class="number">0.0</span><span class="special">,</span>
+        <span class="string">"0"</span><span class="special">)</span></code>.
+        Failing to do this will result in surprising compile errors:
+      </p>
+<pre class="programlisting"><span class="identifier">error</span> <span class="identifier">C2143</span><span class="special">:</span> <span class="identifier">syntax</span> <span class="identifier">error</span> <span class="special">:</span> <span class="identifier">missing</span> <span class="char">';'</span> <span class="identifier">before</span> <span class="char">'<'</span>
+<span class="identifier">error</span> <span class="identifier">C2433</span><span class="special">:</span> <span class="char">'constant_root_two_div_pi'</span> <span class="special">:</span> <span class="char">'inline'</span> <span class="keyword">not</span> <span class="identifier">permitted</span> <span class="identifier">on</span> <span class="identifier">data</span> <span class="identifier">declarations</span>
+<span class="identifier">error</span> <span class="identifier">C2888</span><span class="special">:</span> <span class="char">'T constant_root_two_div_pi'</span> <span class="special">:</span> <span class="identifier">symbol</span> <span class="identifier">cannot</span> <span class="identifier">be</span> <span class="identifier">defined</span> <span class="identifier">within</span> <span class="keyword">namespace</span> <span class="char">'detail'</span>
+<span class="identifier">error</span> <span class="identifier">C2988</span><span class="special">:</span> <span class="identifier">unrecognizable</span> <span class="keyword">template</span> <span class="identifier">declaration</span><span class="special">/</span><span class="identifier">definition</span>
+</pre>
+</td></tr>
+</table></div>
+<p>
+      2. <span class="bold"><strong>You will need an arbitrary precision type to use to
+      calculate the value</strong></span>. This library currently supports either <code class="computeroutput"><span class="identifier">cpp_float</span></code>, <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> or
+      <code class="computeroutput"><span class="identifier">mpfr_class</span></code> used via the bindings
+      in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span></code>.
+      The default is to use <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> unless you define an alternate macro,
+      for example, <code class="computeroutput"><span class="identifier">USE_MPFR</span></code> or <code class="computeroutput"><span class="identifier">USE_CPP_FLOAT</span></code> at the start of your program.
+    </p>
+<p>
+      3. It is necessary to link to the Boost.Regex library, and probably to your
+      chosen arbitrary precision type library.
+    </p>
+<p>
+      4. The complete program to generate the constant <code class="computeroutput"><span class="identifier">half_pi</span></code>
+      using function <code class="computeroutput"><span class="identifier">calculate_half_pi</span></code>
+      is then:
+    </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">USE_CPP_FLOAT</span> <span class="comment">// If required.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">generate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">BOOST_CONSTANTS_GENERATE</span><span class="special">(</span><span class="identifier">half_pi</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+      The output from the program is a snippet of C++ code (actually a macro call)
+      that can be cut and pasted into <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span></code> or else into your own code, for example:
+    </p>
+<pre class="programlisting">  BOOST_DEFINE_MATH_CONSTANT(half_pi, 1.570796326794896619231321691639751442e+00, "1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404326e+00");
+</pre>
+<p>
+      This macro BOOST_DEFINE_MATH_CONSTANT inserts a C++ struct code snippet that
+      declares the <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> versions of the constant, plus
+      a decimal digit string representation correct to 100 decimal digits, and all
+      the meta-programming machinery needed to select between them.
+    </p>
+<p>
+      The result of an expanded macro for Pi is shown below.
+    </p>
+<pre class="programlisting"><span class="comment">// Preprocessed pi constant, annotated.</span>
+
+<span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+  <span class="keyword">namespace</span> <span class="identifier">math</span>
+  <span class="special">{</span>
+    <span class="keyword">namespace</span> <span class="identifier">constants</span>
+    <span class="special">{</span>
+      <span class="keyword">namespace</span> <span class="identifier">detail</span>
+      <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">constant_pi</span>
+        <span class="special">{</span>
+          <span class="keyword">private</span><span class="special">:</span>
+            <span class="comment">// Default implementations from string of decimal digits:</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">get_from_string</span><span class="special">()</span>
+            <span class="special">{</span>
+            <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">result</span>
+               <span class="special">=</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">convert_from_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="string">"3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651e+00"</span><span class="special">,</span>
+               <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">T</span><span class="special">>());</span>
+              <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span> <span class="keyword">static</span> <span class="identifier">T</span> <span class="identifier">compute</span><span class="special">();</span>
+
+          <span class="keyword">public</span><span class="special">:</span>
+            <span class="comment">// Default implementations from string of decimal digits:</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">construct_from_string</span><span class="special">>&)</span>
+            <span class="special">{</span>
+              <span class="identifier">constant_initializer</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="special">&</span> <span class="identifier">constant_pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">get_from_string</span> <span class="special">>::</span><span class="identifier">do_nothing</span><span class="special">();</span>
+              <span class="keyword">return</span> <span class="identifier">get_from_string</span><span class="special">();</span>
+            <span class="special">}</span>
+            <span class="comment">// Float, double and long double versions:</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">construct_from_float</span><span class="special">>)</span>
+            <span class="special">{</span>
+              <span class="keyword">return</span> <span class="number">3.141592653589793238462643383279502884e+00F</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span>  <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">construct_from_double</span><span class="special">>&)</span>
+            <span class="special">{</span>
+              <span class="keyword">return</span> <span class="number">3.141592653589793238462643383279502884e+00</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span>  <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">construct_from_long_double</span><span class="special">>&)</span>
+            <span class="special">{</span>
+              <span class="keyword">return</span> <span class="number">3.141592653589793238462643383279502884e+00L</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="comment">// For very high precision that is nonetheless can be calculated at compile time:</span>
+            <span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">>&</span> <span class="identifier">n</span><span class="special">)</span>
+            <span class="special">{</span>
+              <span class="identifier">constant_initializer2</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">N</span><span class="special">,</span> <span class="special">&</span> <span class="identifier">constant_pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="keyword">template</span> <span class="identifier">compute</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">>::</span><span class="identifier">do_nothing</span><span class="special">();</span>
+              <span class="keyword">return</span> <span class="identifier">compute</span><span class="special"><</span><span class="identifier">N</span><span class="special">>();</span>
+            <span class="special">}</span>
+            <span class="comment">//For true arbitrary precision, which may well vary at runtime.</span>
+            <span class="keyword">static</span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">0</span><span class="special">>&)</span>
+            <span class="special">{</span>
+              <span class="keyword">return</span> <span class="identifier">tools</span><span class="special">::</span><span class="identifier">digits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>()</span> <span class="special">></span> <span class="identifier">max_string_digits</span> <span class="special">?</span> <span class="identifier">compute</span><span class="special"><</span><span class="number">0</span><span class="special">>()</span> <span class="special">:</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">construct_from_string</span><span class="special">>());</span>
+            <span class="special">}</span>
+         <span class="special">};</span> <span class="comment">// template <class T> struct constant_pi</span>
+      <span class="special">}</span> <span class="comment">//  namespace detail</span>
+
+      <span class="comment">// The actual forwarding function (including policy to control precision).</span>
+      <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span> <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">pi</span><span class="special">(</span> <span class="special">)</span>
+      <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">detail</span><span class="special">::</span> <span class="identifier">constant_pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">get</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">construction_traits</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">>::</span><span class="identifier">type</span><span class="special">());</span>
+      <span class="special">}</span>
+      <span class="comment">// The actual forwarding function (using default policy to control precision).</span>
+      <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">inline</span>  <span class="identifier">T</span> <span class="identifier">pi</span><span class="special">()</span>
+      <span class="special">{</span>
+        <span class="keyword">return</span> <span class="identifier">pi</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="special">>()</span>
+      <span class="special">}</span>
+    <span class="special">}</span> <span class="comment">//     namespace constants</span>
+
+    <span class="comment">// Namespace specific versions, for the three built-in floats:</span>
+    <span class="keyword">namespace</span> <span class="identifier">float_constants</span>
+    <span class="special">{</span>
+      <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">float</span> <span class="identifier">pi</span> <span class="special">=</span> <span class="number">3.141592653589793238462643383279502884e+00F</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">namespace</span> <span class="identifier">double_constants</span>
+    <span class="special">{</span>
+      <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">pi</span> <span class="special">=</span> <span class="number">3.141592653589793238462643383279502884e+00</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">namespace</span> <span class="identifier">long_double_constants</span>
+    <span class="special">{</span>
+      <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">pi</span> <span class="special">=</span> <span class="number">3.141592653589793238462643383279502884e+00L</span><span class="special">;</span>
+    <span class="special">}</span>
+    <span class="keyword">namespace</span> <span class="identifier">constants</span><span class="special">{;</span>
+    <span class="special">}</span> <span class="comment">// namespace constants</span>
+  <span class="special">}</span> <span class="comment">// namespace math</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="constants.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="FAQ.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="prev" href="fp_facets/rationale.html" title="Design Rationale">
+<link rel="next" href="next_float/nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="fp_facets/rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="next_float/nextafter.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.next_float"></a><a class="link" href="next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">Floating-Point Representation
+    Distance (ULP), and Finding Adjacent Floating-Point Values</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="next_float/nextafter.html">Finding the Next Representable
+      Value in a Specific Direction (nextafter)</a></span></dt>
+<dt><span class="section"><a href="next_float/float_next.html">Finding the Next
+      Greater Representable Value (float_next)</a></span></dt>
+<dt><span class="section"><a href="next_float/float_prior.html">Finding the Next
+      Smaller Representable Value (float_prior)</a></span></dt>
+<dt><span class="section"><a href="next_float/float_distance.html">Calculating the
+      Representation Distance Between Two Floating Point Values (ULP) float_distance</a></span></dt>
+<dt><span class="section"><a href="next_float/float_advance.html">Advancing a Floating
+      Point Value by a Specific Representation Distance (ULP) float_advance</a></span></dt>
+</dl></div>
+<p>
+      <a href="http://en.wikipedia.org/wiki/Unit_in_the_last_place" target="_top">Unit of Least
+      Precision or Unit in the Last Place</a> is the gap between two different,
+      but as close as possible, floating-point numbers.
+    </p>
+<p>
+      Most decimal values, for example 0.1, cannot be exactly represented as floating-point
+      values, but will be stored as the <a href="http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding" target="_top">closest
+      representable floating-point</a>.
+    </p>
+<p>
+      Functions are provided for finding adjacent greater and lesser floating-point
+      values, and estimating the number of gaps between any two floating-point values.
+    </p>
+<p>
+      The floating-point type FPT must have has a fixed number of bits in the representation.
+      The number of bits may set at runtime, but must be the same for all numbers.
+      For example, NTL::quad_float
+      type (fixed 128-bit representation) or NTL::RR
+      type (arbitrary but fixed decimal digits, default 150) but <span class="bold"><strong>not</strong></span>
+      a type that extends the representation to provide an exact representation for
+      any number, for example <a href="http://keithbriggs.info/xrc.html" target="_top">XRC eXact
+      Real in C</a>.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="fp_facets/rationale.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="next_float/nextafter.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_advance.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_advance.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="prev" href="float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance">
+<link rel="next" href="../../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="float_distance.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../extern_c.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float_float_advance">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.next_float.float_advance"></a><a class="link" href="float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance">Advancing a Floating
+      Point Value by a Specific Representation Distance (ULP) float_advance</a>
+</h3></div></div></div>
+<p>
+        Function float_advance advances a floating point number by a specified number
+        of ULP.
+      </p>
+<h5>
+<a name="math_toolkit.next_float.float_advance.h0"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_advance.synopsis"></a></span><a class="link" href="float_advance.html#math_toolkit.next_float.float_advance.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">next</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">></span>
+<span class="identifier">FPT</span> <span class="identifier">float_advance</span><span class="special">(</span><span class="identifier">FPT</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">distance</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.next_float.float_advance.h1"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_advance.description_float_advance"></a></span><a class="link" href="float_advance.html#math_toolkit.next_float.float_advance.description_float_advance">Description
+        - float_advance</a>
+      </h5>
+<p>
+        Returns a floating point number <span class="emphasis"><em>r</em></span> such that <code class="computeroutput"><span class="identifier">float_distance</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="identifier">r</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">distance</span></code>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float_distance.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../extern_c.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_distance.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_distance.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="prev" href="float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)">
+<link rel="next" href="float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="float_prior.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_advance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float_float_distance">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.next_float.float_distance"></a><a class="link" href="float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance">Calculating the
+      Representation Distance Between Two Floating Point Values (ULP) float_distance</a>
+</h3></div></div></div>
+<p>
+        Function float_distance finds the number of gaps/bits/ULP between any two
+        floating-point values. If the significands of floating-point numbers are
+        viewed as integers, then their difference is the number of ULP/gaps/bits
+        different.
+      </p>
+<h5>
+<a name="math_toolkit.next_float.float_distance.h0"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_distance.synopsis"></a></span><a class="link" href="float_distance.html#math_toolkit.next_float.float_distance.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">next</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">></span>
+<span class="identifier">FPT</span> <span class="identifier">float_distance</span><span class="special">(</span><span class="identifier">FPT</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">FPT</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.next_float.float_distance.h1"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_distance.description_float_distance"></a></span><a class="link" href="float_distance.html#math_toolkit.next_float.float_distance.description_float_distance">Description
+        - float_distance</a>
+      </h5>
+<p>
+        Returns the distance between <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>:
+        the result is always a signed integer value (stored in floating-point type
+        FPT) representing the number of distinct representations between <span class="emphasis"><em>a</em></span>
+        and <span class="emphasis"><em>b</em></span>.
+      </p>
+<p>
+        Note that
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">float_distance</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+            always returns 0.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">float_distance</span><span class="special">(</span><span class="identifier">float_next</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span> <span class="identifier">a</span><span class="special">)</span></code>
+            always returns -1.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">float_distance</span><span class="special">(</span><span class="identifier">float_prior</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span> <span class="identifier">a</span><span class="special">)</span></code>
+            always returns 1.
+          </li>
+</ul></div>
+<p>
+        The function <code class="computeroutput"><span class="identifier">float_distance</span></code>
+        is equivalent to calculating the number of ULP (Units in the Last Place)
+        between <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span> except that it
+        returns a signed value indicating whether <code class="computeroutput"><span class="identifier">a</span>
+        <span class="special">></span> <span class="identifier">b</span></code>
+        or not.
+      </p>
+<p>
+        If the distance is too great then it may not be able to be represented as
+        an exact integer by type FPT, but in practice this is unlikely to be a issue.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float_prior.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_advance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_next.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_next.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Finding the Next Greater Representable Value (float_next)</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="prev" href="nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)">
+<link rel="next" href="float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nextafter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_prior.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float_float_next">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.next_float.float_next"></a><a class="link" href="float_next.html" title="Finding the Next Greater Representable Value (float_next)">Finding the Next
+      Greater Representable Value (float_next)</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.next_float.float_next.h0"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_next.synopsis"></a></span><a class="link" href="float_next.html#math_toolkit.next_float.float_next.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">next</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">></span>
+<span class="identifier">FPT</span> <span class="identifier">float_next</span><span class="special">(</span><span class="identifier">FPT</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.next_float.float_next.h1"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_next.description_float_next"></a></span><a class="link" href="float_next.html#math_toolkit.next_float.float_next.description_float_next">Description
+        - float_next</a>
+      </h5>
+<p>
+        Returns the next representable value which is greater than <span class="emphasis"><em>x</em></span>.
+        If <span class="emphasis"><em>x</em></span> is non-finite then returns the result of a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>. If
+        there is no such value greater than <span class="emphasis"><em>x</em></span> then returns an
+        <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>.
+      </p>
+<p>
+        Has the same effect as
+      </p>
+<pre class="programlisting"><span class="identifier">nextafter</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">FPT</span><span class="special">>::</span><span class="identifier">max</span><span class="special">)());</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nextafter.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_prior.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_prior.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float/float_prior.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Finding the Next Smaller Representable Value (float_prior)</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="prev" href="float_next.html" title="Finding the Next Greater Representable Value (float_next)">
+<link rel="next" href="float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="float_next.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_distance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float_float_prior">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.next_float.float_prior"></a><a class="link" href="float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)">Finding the Next
+      Smaller Representable Value (float_prior)</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.next_float.float_prior.h0"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_prior.synopsis"></a></span><a class="link" href="float_prior.html#math_toolkit.next_float.float_prior.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">next</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">></span>
+<span class="identifier">FPT</span> <span class="identifier">float_prior</span><span class="special">(</span><span class="identifier">FPT</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.next_float.float_prior.h1"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.float_prior.description_float_prior"></a></span><a class="link" href="float_prior.html#math_toolkit.next_float.float_prior.description_float_prior">Description
+        - float_prior</a>
+      </h5>
+<p>
+        Returns the next representable value which is less than <span class="emphasis"><em>x</em></span>.
+        If <span class="emphasis"><em>x</em></span> is non-finite then returns the result of a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>. If
+        there is no such value less than <span class="emphasis"><em>x</em></span> then returns an
+        <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>.
+      </p>
+<p>
+        Has the same effect as
+      </p>
+<pre class="programlisting"><span class="identifier">nextafter</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="special">-(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">FPT</span><span class="special">>::</span><span class="identifier">max</span><span class="special">)());</span>  <span class="comment">// Note most negative value -max.</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float_next.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_distance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/next_float/nextafter.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/next_float/nextafter.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,117 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Finding the Next Representable Value in a Specific Direction (nextafter)</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="prev" href="../next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">
+<link rel="next" href="float_next.html" title="Finding the Next Greater Representable Value (float_next)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../next_float.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_next.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_next_float_nextafter">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.next_float.nextafter"></a><a class="link" href="nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)">Finding the Next Representable
+      Value in a Specific Direction (nextafter)</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.next_float.nextafter.h0"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.nextafter.synopsis"></a></span><a class="link" href="nextafter.html#math_toolkit.next_float.nextafter.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">next</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">FPT</span><span class="special">></span>
+<span class="identifier">FPT</span> <span class="identifier">nextafter</span><span class="special">(</span><span class="identifier">FPT</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">FPT</span> <span class="identifier">direction</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.next_float.nextafter.h1"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.nextafter.description_nextafter"></a></span><a class="link" href="nextafter.html#math_toolkit.next_float.nextafter.description_nextafter">Description
+        - nextafter</a>
+      </h5>
+<p>
+        This is an implementation of the <code class="computeroutput"><span class="identifier">nextafter</span></code>
+        function included in the C99 standard. (It is also effectively an implementation
+        of the C99 'nexttoward' legacy function which differs only having a long
+        double direction, and can generally serve in its place if required).
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          The C99 functions must use suffixes f and l to distinguish float and long
+          double versions. C++ uses the template mechanism instead.
+        </p></td></tr>
+</table></div>
+<p>
+        Returns the next representable value after <span class="emphasis"><em>x</em></span> in the
+        direction of <span class="emphasis"><em>y</em></span>. If <code class="computeroutput"><span class="identifier">x</span>
+        <span class="special">==</span> <span class="identifier">y</span></code>
+        then returns <span class="emphasis"><em>x</em></span>. If <span class="emphasis"><em>x</em></span> is non-finite
+        then returns the result of a <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+        If there is no such value in the direction of <span class="emphasis"><em>y</em></span> then
+        returns an <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>.
+      </p>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          The template parameter FTP must be a floating-point type. An integer type,
+          for example, will produce an unhelpful error message.
+        </p></td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Nearly always, you just want the next or prior representable value, so
+          instead use <code class="computeroutput"><span class="identifier">float_next</span></code>
+          or <code class="computeroutput"><span class="identifier">float_prior</span></code> below.
+        </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.next_float.nextafter.h2"></a>
+        <span class="phrase"><a name="math_toolkit.next_float.nextafter.examples_nextafter"></a></span><a class="link" href="nextafter.html#math_toolkit.next_float.nextafter.examples_nextafter">Examples -
+        nextafter</a>
+      </h5>
+<p>
+        The two representations using a 32-bit float either side of unity are:
+      </p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">nearest</span> <span class="special">(</span><span class="identifier">exact</span><span class="special">)</span> <span class="identifier">representation</span> <span class="identifier">of</span> <span class="number">1.F</span> <span class="identifier">is</span>      <span class="number">1.00000000</span>
+<span class="identifier">nextafter</span><span class="special">(</span><span class="number">1.F</span><span class="special">,</span> <span class="number">999</span><span class="special">)</span> <span class="identifier">is</span>                            <span class="number">1.00000012</span>
+<span class="identifier">nextafter</span><span class="special">(</span><span class="number">1</span><span class="special">/</span><span class="identifier">f</span><span class="special">,</span> <span class="special">-</span><span class="number">999</span><span class="special">)</span> <span class="identifier">is</span>                           <span class="number">0.99999994</span>
+
+<span class="identifier">The</span> <span class="identifier">nearest</span> <span class="special">(</span><span class="keyword">not</span> <span class="identifier">exact</span><span class="special">)</span> <span class="identifier">representation</span> <span class="identifier">of</span> <span class="number">0.1F</span> <span class="identifier">is</span> <span class="number">0.100000001</span>
+<span class="identifier">nextafter</span><span class="special">(</span><span class="number">0.1F</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="identifier">is</span>                            <span class="number">0.100000009</span>
+<span class="identifier">nextafter</span><span class="special">(</span><span class="number">0.1F</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="identifier">is</span>                            <span class="number">0.099999994</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../next_float.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="float_next.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/non_mem.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/non_mem.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,214 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Non-Member Operators</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="mem_fun.html" title="Quaternion Member Functions">
+<link rel="next" href="value_op.html" title="Quaternion Value Operations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="mem_fun.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="value_op.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_non_mem">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.non_mem"></a><a class="link" href="non_mem.html" title="Quaternion Non-Member Operators">Quaternion Non-Member Operators</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.non_mem.h0"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.unary_plus"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.unary_plus">Unary
+      Plus</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This unary operator simply returns q.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h1"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.unary_minus"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.unary_minus">Unary
+      Minus</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This unary operator returns the opposite of q.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h2"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.binary_addition_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">Binary
+      Addition Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">+</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">+=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h3"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.binary_subtraction_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">Binary
+      Subtraction Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">-</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">-=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h4"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.binary_multiplication_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">Binary
+      Multiplication Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">*</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">*=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h5"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.binary_division_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">Binary
+      Division Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">/</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>	<span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">/=</span>
+      <span class="identifier">rhs</span></code>. It is of course still an error
+      to divide by zero...
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h6"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.equality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">Equality
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">==</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These return true if and only if the four components of <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span></code> are
+      equal to their counterparts in <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">rhs</span><span class="special">)</span></code>. As
+      with any floating-type entity, this is essentially meaningless.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h7"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.inequality_operators"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">Inequality
+      Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="keyword">bool</span>	<span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These return true if and only if <code class="computeroutput"><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
+      <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">rhs</span><span class="special">)</span></code> is false. As with any floating-type entity,
+      this is essentially meaningless.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h8"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.stream_extractor"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.stream_extractor">Stream
+      Extractor</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special">>></span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="identifier">q</span><s
pan class="special">);</span>
+</pre>
+<p>
+      Extracts a quaternion q of one of the following forms (with a, b, c and d of
+      type <code class="computeroutput"><span class="identifier">T</span></code>):
+    </p>
+<p>
+      <code class="literal">a (a), (a,b), (a,b,c), (a,b,c,d) (a,(c)), (a,(c,d)), ((a)), ((a),c),
+      ((a),(c)), ((a),(c,d)), ((a,b)), ((a,b),c), ((a,b),(c)), ((a,b),(c,d))</code>
+    </p>
+<p>
+      The input values must be convertible to <code class="computeroutput"><span class="identifier">T</span></code>.
+      If bad input is encountered, calls <code class="computeroutput"><span class="identifier">is</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios</span><span class="special">::</span><span class="identifier">failbit</span><span class="special">)</span></code>
+      (which may throw ios::failure (27.4.5.3)).
+    </p>
+<p>
+      <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>.
+    </p>
+<p>
+      The rationale for the list of accepted formats is that either we have a list
+      of up to four reals, or else we have a couple of complex numbers, and in that
+      case if it formated as a proper complex number, then it should be accepted.
+      Thus potential ambiguities are lifted (for instance (a,b) is (a,b,0,0) and
+      not (a,0,b,0), i.e. it is parsed as a list of two real numbers and not two
+      complex numbers which happen to have imaginary parts equal to zero).
+    </p>
+<h5>
+<a name="math_toolkit.non_mem.h9"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem.stream_inserter"></a></span><a class="link" href="non_mem.html#math_toolkit.non_mem.stream_inserter">Stream
+      Inserter</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special"><<</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> 
<span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Inserts the quaternion q onto the stream <code class="computeroutput"><span class="identifier">os</span></code>
+      as if it were implemented as follows:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">>&</span> <span class="keyword">operator</span> <span class="special"><<</span> <span class="special">(</span>	
+               <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span>
+               <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostringstream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span>	<span class="identifier">s</span><span class="special">;</span>
+
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">flags</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">flags</span><span class="special">());</span>
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">());</span>
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">precision</span><span class="special">());</span>
+
+   <span class="identifier">s</span> <span class="special"><<</span> <span class="char">'('</span> <span class="special"><<</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+            <span class="special"><<</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_2</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+            <span class="special"><<</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_3</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+            <span class="special"><<</span> <span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()</span> <span class="special"><<</span> <span class="char">')'</span><span class="special">;</span>
+
+   <span class="keyword">return</span> <span class="identifier">os</span> <span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">str</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mem_fun.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="value_op.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/non_mem0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/non_mem0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,213 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Non-Member Operators</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="mem_fun0.html" title="Octonion Member Functions">
+<link rel="next" href="oct_value_ops.html" title="Octonion Value Operations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="mem_fun0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_value_ops.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_non_mem0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.non_mem0"></a><a class="link" href="non_mem0.html" title="Octonion Non-Member Operators">Octonion Non-Member Operators</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.non_mem0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.unary_plus_and_minus_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.unary_plus_and_minus_operators">Unary
+      Plus and Minus Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This unary operator simply returns o.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This unary operator returns the opposite of o.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h1"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_addition_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">Binary
+      Addition Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="speci
al">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">co
nst</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">+=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h2"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_subtraction_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">Binary
+      Subtraction Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="speci
al">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">co
nst</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">-=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h3"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_multiplication_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">Binary
+      Multiplication Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="speci
al">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">co
nst</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">*=</span>
+      <span class="identifier">rhs</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h4"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_division_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">Binary
+      Division Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="speci
al">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">co
nst</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These operators return <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">/=</span>
+      <span class="identifier">rhs</span></code>. It is of course still an error
+      to divide by zero...
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h5"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_equality_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">Binary
+      Equality Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);
</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These return true if and only if the four components of <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span></code> are
+      equal to their counterparts in <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">rhs</span><span class="special">)</span></code>. As
+      with any floating-type entity, this is essentially meaningless.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h6"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.binary_inequality_operators"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">Binary
+      Inequality Operators</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);
</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+</pre>
+<p>
+      These return true if and only if <code class="computeroutput"><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
+      <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">rhs</span><span class="special">)</span></code> is false. As with any floating-type entity,
+      this is essentially meaningless.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h7"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.stream_extractor"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.stream_extractor">Stream
+      Extractor</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special">>></span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span c
lass="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Extracts an octonion <code class="computeroutput"><span class="identifier">o</span></code>. We
+      accept any format which seems reasonable. However, since this leads to a great
+      many ambiguities, decisions were made to lift these. In case of doubt, stick
+      to lists of reals.
+    </p>
+<p>
+      The input values must be convertible to T. If bad input is encountered, calls
+      <code class="computeroutput"><span class="identifier">is</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios</span><span class="special">::</span><span class="identifier">failbit</span><span class="special">)</span></code> (which may throw <code class="computeroutput"><span class="identifier">ios</span><span class="special">::</span><span class="identifier">failure</span></code>
+      (27.4.5.3)).
+    </p>
+<p>
+      Returns <code class="computeroutput"><span class="identifier">is</span></code>.
+    </p>
+<h5>
+<a name="math_toolkit.non_mem0.h8"></a>
+      <span class="phrase"><a name="math_toolkit.non_mem0.stream_inserter"></a></span><a class="link" href="non_mem0.html#math_toolkit.non_mem0.stream_inserter">Stream
+      Inserter</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special"><<</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span c
lass="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Inserts the octonion <code class="computeroutput"><span class="identifier">o</span></code> onto
+      the stream <code class="computeroutput"><span class="identifier">os</span></code> as if it were
+      implemented as follows:
+    </p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="keyword">operator</span> <span class="special"><<</span> <span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostringstream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="identifier">s</span><span class="special">;</span>
+
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">flags</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">flags</span><span class="special">());</span>
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">getloc</span><span class="special">());</span>
+   <span class="identifier">s</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">os</span><span class="special">.</span><span class="identifier">precision</span><span class="special">());</span>
+
+   <span class="identifier">s</span> <span class="special"><<</span> <span class="char">'('</span> <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_2</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_3</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_5</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_6</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_7</span><span class="special">()</span> <span class="special"><<</span> <span class="char">','</span>
+      <span class="special"><<</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">()</span> <span class="special"><<</span> <span class="char">')'</span><span class="special">;</span>
+
+   <span class="keyword">return</span> <span class="identifier">os</span> <span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">str</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="mem_fun0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_value_ops.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/oct_create.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/oct_create.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Creation Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="oct_value_ops.html" title="Octonion Value Operations">
+<link rel="next" href="oct_trans.html" title="Octonions Transcendentals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="oct_value_ops.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_trans.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_oct_create">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.oct_create"></a><a class="link" href="oct_create.html" title="Octonion Creation Functions">Octonion Creation Functions</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&
;</span> <span class="identifier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi6</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="ide
ntifier">theta2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta4</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">cylindrical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifi
er">h2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h6</span><span class="special">);</span>
+</pre>
+<p>
+      These build octonions in a way similar to the way polar builds complex numbers,
+      as there is no strict equivalent to polar coordinates for octonions.
+    </p>
+<p>
+      <code class="computeroutput"><span class="identifier">spherical</span></code> is a simple transposition
+      of <code class="computeroutput"><span class="identifier">polar</span></code>, it takes as inputs
+      a (positive) magnitude and a point on the hypersphere, given by three angles.
+      The first of these, <span class="emphasis"><em>theta</em></span> has a natural range of -pi to
+      +pi, and the other two have natural ranges of -pi/2 to +pi/2 (as is the case
+      with the usual spherical coordinates in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>).
+      Due to the many symmetries and periodicities, nothing untoward happens if the
+      magnitude is negative or the angles are outside their natural ranges. The expected
+      degeneracies (a magnitude of zero ignores the angles settings...) do happen
+      however.
+    </p>
+<p>
+      <code class="computeroutput"><span class="identifier">cylindrical</span></code> is likewise a simple
+      transposition of the usual cylindrical coordinates in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>,
+      which in turn is another derivative of planar polar coordinates. The first
+      two inputs are the polar coordinates of the first <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>
+      component of the octonion. The third and fourth inputs are placed into the
+      third and fourth <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span> components
+      of the octonion, respectively.
+    </p>
+<p>
+      <code class="computeroutput"><span class="identifier">multipolar</span></code> is yet another simple
+      generalization of polar coordinates. This time, both <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>
+      components of the octonion are given in polar coordinates.
+    </p>
+<p>
+      In this version of our implementation of octonions, there is no analogue of
+      the complex value operation arg as the situation is somewhat more complicated.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="oct_value_ops.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_trans.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/oct_specialization.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/oct_specialization.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,232 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Specializations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="octonion.html" title="Template Class octonion">
+<link rel="next" href="oct_typedefs.html" title="Octonion Member Typedefs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="octonion.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_typedefs.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_oct_specialization">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.oct_specialization"></a><a class="link" href="oct_specialization.html" title="Octonion Specializations">Octonion Specializations</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">request
ed_d</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span cl
ass="number">0.0f</span><span class="special">);</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="s
pecial"><</span><span class="keyword">float</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="
identifier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <span 
class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>                   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_octonion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">reques
ted_d</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span c
lass="number">0.0</span><span class="special">);</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class=
"special"><</span><span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span c
lass="identifier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <spa
n class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>                   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_octonion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="keyword">explicit</span>   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</spa
n> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span
 class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+   <span class="keyword">explicit</span>   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="ident
ifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="iden
tifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span 
class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span>   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>                   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}</span> <span class="special">}</span> <span class="comment">// namespaces</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="octonion.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_typedefs.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/oct_trans.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/oct_trans.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,138 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonions Transcendentals</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="oct_create.html" title="Octonion Creation Functions">
+<link rel="next" href="tests0.html" title="Test Program">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="oct_create.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tests0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_oct_trans">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.oct_trans"></a><a class="link" href="oct_trans.html" title="Octonions Transcendentals">Octonions Transcendentals</a>
+</h2></div></div></div>
+<p>
+      There is no <code class="computeroutput"><span class="identifier">log</span></code> or <code class="computeroutput"><span class="identifier">sqrt</span></code> provided for octonions in this implementation,
+      and <code class="computeroutput"><span class="identifier">pow</span></code> is likewise restricted
+      to integral powers of the exponent. There are several reasons to this: on the
+      one hand, the equivalent of analytic continuation for octonions ("branch
+      cuts") remains to be investigated thoroughly (by me, at any rate...),
+      and we wish to avoid the nonsense introduced in the standard by exponentiations
+      of complexes by complexes (which is well defined, but not in the standard...).
+      Talking of nonsense, saying that <code class="computeroutput"><span class="identifier">pow</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code> is "implementation
+      defined" is just plain brain-dead...
+    </p>
+<p>
+      We do, however provide several transcendentals, chief among which is the exponential.
+      That it allows for a "closed formula" is a result of the author (the
+      existence and definition of the exponential, on the octonions among others,
+      on the other hand, is a few centuries old). Basically, any converging power
+      series with real coefficients which allows for a closed formula in <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> can be transposed to <span class="emphasis"><em><span class="bold"><strong>O</strong></span></em></span>. More transcendentals of this type could
+      be added in a further revision upon request. It should be noted that it is
+      these functions which force the dependency upon the boost/math/special_functions/sinc.hpp
+      and the boost/math/special_functions/sinhc.hpp
+      headers.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h0"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.exp"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.exp">exp</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the exponential of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h1"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.cos"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.cos">cos</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the cosine of the octonion
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h2"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.sin"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.sin">sin</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the sine of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h3"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.tan"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.tan">tan</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the tangent of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h4"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.cosh"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.cosh">cosh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic cosine of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h5"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.sinh"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.sinh">sinh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic sine of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h6"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.tanh"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.tanh">tanh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic tangent of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_trans.h7"></a>
+      <span class="phrase"><a name="math_toolkit.oct_trans.pow"></a></span><a class="link" href="oct_trans.html#math_toolkit.oct_trans.pow">pow</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">pow</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the n-th power of the octonion q.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="oct_create.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tests0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/oct_typedefs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/oct_typedefs.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Member Typedefs</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="oct_specialization.html" title="Octonion Specializations">
+<link rel="next" href="mem_fun0.html" title="Octonion Member Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="oct_specialization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_fun0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_oct_typedefs">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.oct_typedefs"></a><a class="link" href="oct_typedefs.html" title="Octonion Member Typedefs">Octonion Member Typedefs</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>value_type</strong></span>
+    </p>
+<p>
+      Template version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Float specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      Long double specialization version:
+    </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+<p>
+      These provide easy acces to the type the template is built upon.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="oct_specialization.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_fun0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/oct_value_ops.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/oct_value_ops.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,98 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Octonion Value Operations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="non_mem0.html" title="Octonion Non-Member Operators">
+<link rel="next" href="oct_create.html" title="Octonion Creation Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="non_mem0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_create.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_oct_value_ops">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.oct_value_ops"></a><a class="link" href="oct_value_ops.html" title="Octonion Value Operations">Octonion Value Operations</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.oct_value_ops.h0"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.real_and_unreal"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.real_and_unreal">Real
+      and Unreal</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>  <span class="identifier">real</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      These return <code class="computeroutput"><span class="identifier">o</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></code> and
+      <code class="computeroutput"><span class="identifier">o</span><span class="special">.</span><span class="identifier">unreal</span><span class="special">()</span></code>
+      respectively.
+    </p>
+<h5>
+<a name="math_toolkit.oct_value_ops.h1"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.conj"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.conj">conj</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This returns the conjugate of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_value_ops.h2"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.sup"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.sup">sup</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>   <span class="identifier">sup</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This return the sup norm (the greatest among <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())...</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">()))</span></code> of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_value_ops.h3"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.l1"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.l1">l1</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>   <span class="identifier">l1</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This return the l1 norm (<code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())+...+</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">())</span></code>) of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_value_ops.h4"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.abs"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.abs">abs</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>   <span class="identifier">abs</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This return the magnitude (Euclidian norm) of the octonion.
+    </p>
+<h5>
+<a name="math_toolkit.oct_value_ops.h5"></a>
+      <span class="phrase"><a name="math_toolkit.oct_value_ops.norm"></a></span><a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.norm">norm</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>  <span class="identifier">norm</span><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span><span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+</pre>
+<p>
+      This return the (Cayley) norm of the octonion. The term "norm" might
+      be confusing, as most people associate it with the Euclidian norm (and quadratic
+      functionals). For this version of (the mathematical objects known as) octonions,
+      the Euclidian norm (also known as magnitude) is the square root of the Cayley
+      norm.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="non_mem0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_create.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/octonion.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/octonion.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,104 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Template Class octonion</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="synopsis0.html" title="Synopsis">
+<link rel="next" href="oct_specialization.html" title="Octonion Specializations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_specialization.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_octonion">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.octonion"></a><a class="link" href="octonion.html" title="Template Class octonion">Template Class octonion</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">octonion</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">re
quested_d</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_h</span> <span class="special">=</s
pan> <span class="identifier">T</span><span class="special">());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="spe
cial"><</span><span class="identifier">T</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identi
fier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">>());</span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q1</span> <span class="special">=</span> <span cl
ass="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>());</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="keyword">explicit</span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.constructors">octonion</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>                   <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_5</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_6</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_7</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_real_components">R_component_8</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>             <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_complex_components">C_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.individual_quaternion_components">H_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.assignment_operators">operator =</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator +=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator -=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator *=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="mem_fun0.html#math_toolkit.mem_fun0.other_member_operators">operator /=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}</span> <span class="special">}</span> <span class="comment">// namespaces</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="oct_specialization.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="next" href="header.html" title="Header File">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../quaternions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_overview">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a>
+</h2></div></div></div>
+<p>
+      Quaternions are a relative of complex numbers.
+    </p>
+<p>
+      Quaternions are in fact part of a small hierarchy of structures built upon
+      the real numbers, which comprise only the set of real numbers (traditionally
+      named <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span>), the set of
+      complex numbers (traditionally named <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>),
+      the set of quaternions (traditionally named <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>)
+      and the set of octonions (traditionally named <span class="emphasis"><em><span class="bold"><strong>O</strong></span></em></span>),
+      which possess interesting mathematical properties (chief among which is the
+      fact that they are <span class="emphasis"><em>division algebras</em></span>, <span class="emphasis"><em>i.e.</em></span>
+      where the following property is true: if <span class="emphasis"><em><code class="literal">y</code></em></span>
+      is an element of that algebra and is <span class="bold"><strong>not equal to zero</strong></span>,
+      then <span class="emphasis"><em><code class="literal">yx = yx'</code></em></span>, where <span class="emphasis"><em><code class="literal">x</code></em></span>
+      and <span class="emphasis"><em><code class="literal">x'</code></em></span> denote elements of that algebra,
+      implies that <span class="emphasis"><em><code class="literal">x = x'</code></em></span>). Each member of
+      the hierarchy is a super-set of the former.
+    </p>
+<p>
+      One of the most important aspects of quaternions is that they provide an efficient
+      way to parameterize rotations in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+      (the usual three-dimensional space) and <span class="emphasis"><em><span class="bold"><strong>R<sup>4</sup></strong></span></em></span>.
+    </p>
+<p>
+      In practical terms, a quaternion is simply a quadruple of real numbers (α,β,γ,δ),
+      which we can write in the form <span class="emphasis"><em><code class="literal">q = α + βi + γj + δk</code></em></span>,
+      where <span class="emphasis"><em><code class="literal">i</code></em></span> is the same object as for complex
+      numbers, and <span class="emphasis"><em><code class="literal">j</code></em></span> and <span class="emphasis"><em><code class="literal">k</code></em></span>
+      are distinct objects which play essentially the same kind of role as <span class="emphasis"><em><code class="literal">i</code></em></span>.
+    </p>
+<p>
+      An addition and a multiplication is defined on the set of quaternions, which
+      generalize their real and complex counterparts. The main novelty here is that
+      <span class="bold"><strong>the multiplication is not commutative</strong></span> (i.e.
+      there are quaternions <span class="emphasis"><em><code class="literal">x</code></em></span> and <span class="emphasis"><em><code class="literal">y</code></em></span>
+      such that <span class="emphasis"><em><code class="literal">xy ≠ yx</code></em></span>). A good mnemotechnical
+      way of remembering things is by using the formula <span class="emphasis"><em><code class="literal">i*i =
+      j*j = k*k = -1</code></em></span>.
+    </p>
+<p>
+      Quaternions (and their kin) are described in far more details in this other
+      document (with <a href="../../../../quaternion/TQE_EA.pdf" target="_top">errata
+      and addenda</a>).
+    </p>
+<p>
+      Some traditional constructs, such as the exponential, carry over without too
+      much change into the realms of quaternions, but other, such as taking a square
+      root, do not.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../quaternions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/overview0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/overview0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="next" href="header0.html" title="Header File">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../octonions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_overview0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.overview0"></a><a class="link" href="overview0.html" title="Overview">Overview</a>
+</h2></div></div></div>
+<p>
+      Octonions, like quaternions,
+      are a relative of complex numbers.
+    </p>
+<p>
+      Octonions see some use in theoretical physics.
+    </p>
+<p>
+      In practical terms, an octonion is simply an octuple of real numbers (α,β,γ,δ,ε,ζ,η,θ), which
+      we can write in the form <span class="emphasis"><em><code class="literal">o = α + βi + γj + δk + εe' + ζi' + ηj' + θk'</code></em></span>, where
+      <span class="emphasis"><em><code class="literal">i</code></em></span>, <span class="emphasis"><em><code class="literal">j</code></em></span>
+      and <span class="emphasis"><em><code class="literal">k</code></em></span> are the same objects as for quaternions,
+      and <span class="emphasis"><em><code class="literal">e'</code></em></span>, <span class="emphasis"><em><code class="literal">i'</code></em></span>,
+      <span class="emphasis"><em><code class="literal">j'</code></em></span> and <span class="emphasis"><em><code class="literal">k'</code></em></span>
+      are distinct objects which play essentially the same kind of role as <span class="emphasis"><em><code class="literal">i</code></em></span>
+      (or <span class="emphasis"><em><code class="literal">j</code></em></span> or <span class="emphasis"><em><code class="literal">k</code></em></span>).
+    </p>
+<p>
+      Addition and a multiplication is defined on the set of octonions, which generalize
+      their quaternionic counterparts. The main novelty this time is that <span class="bold"><strong>the multiplication is not only not commutative, is now not even
+      associative</strong></span> (i.e. there are octonions <span class="emphasis"><em><code class="literal">x</code></em></span>,
+      <span class="emphasis"><em><code class="literal">y</code></em></span> and <span class="emphasis"><em><code class="literal">z</code></em></span>
+      such that <span class="emphasis"><em><code class="literal">x(yz) ≠ (xy)z</code></em></span>). A way of remembering
+      things is by using the following multiplication table:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../../../octonion/graphics/octonion_blurb17.jpeg"></span>
+    </p>
+<p>
+      Octonions (and their kin) are described in far more details in this other
+      document (with <a href="../../../../quaternion/TQE_EA.pdf" target="_top">errata
+      and addenda</a>).
+    </p>
+<p>
+      Some traditional constructs, such as the exponential, carry over without too
+      much change into the realms of octonions, but other, such as taking a square
+      root, do not (the fact that the exponential has a closed form is a result of
+      the author, but the fact that the exponential exists at all for octonions is
+      known since quite a long time ago).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../octonions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="header0.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/owens_t.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/owens_t.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,216 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Owen's T function</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="inv_hyper/atanh.html" title="atanh">
+<link rel="next" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inv_hyper/atanh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../utils.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_owens_t">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.owens_t"></a><a class="link" href="owens_t.html" title="Owen's T function">Owen's T function</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.owens_t.h0"></a>
+      <span class="phrase"><a name="math_toolkit.owens_t.synopsis"></a></span><a class="link" href="owens_t.html#math_toolkit.owens_t.synopsis">Synopsis</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">owens_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">owens_t</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">h</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">a</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">owens_t</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">h</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.owens_t.h1"></a>
+      <span class="phrase"><a name="math_toolkit.owens_t.description"></a></span><a class="link" href="owens_t.html#math_toolkit.owens_t.description">Description</a>
+    </h5>
+<p>
+      Returns the <a href="http://en.wikipedia.org/wiki/Owen%27s_T_function" target="_top">Owens_t
+      function</a> of <span class="emphasis"><em>h</em></span> and <span class="emphasis"><em>a</em></span>.
+    </p>
+<p>
+      The final <a class="link" href="../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+      be used to control the behaviour of the function: how it handles errors, what
+      level of precision to use etc. Refer to the <a class="link" href="../policy.html" title="Chapter 13. Policies">policy documentation
+      for more details</a>.
+    </p>
+<p>
+           <span class="inlinemediaobject"><img src="../../equations/owens_t.png"></span>
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/plot_owens_t.png"></span>
+    </p>
+<p>
+      The function <code class="computeroutput"><span class="identifier">owens_t</span><span class="special">(</span><span class="identifier">h</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code> gives the probability of the event <span class="emphasis"><em>(X
+      > h and 0 < Y < a * X)</em></span>, where <span class="emphasis"><em>X</em></span> and
+      <span class="emphasis"><em>Y</em></span> are independent standard normal random variables.
+    </p>
+<p>
+      For h and a > 0, T(h,a), gives the volume of an uncorrelated bivariate normal
+      distribution with zero means and unit variances over the area between <span class="emphasis"><em>y
+      = ax</em></span> and <span class="emphasis"><em>y = 0</em></span> and to the right of <span class="emphasis"><em>x
+      = h</em></span>.
+    </p>
+<p>
+      That is the area shaded in the figure below (Owens 1956).
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/owens_integration_area.png" align="middle"></span>
+    </p>
+<p>
+      and is also illustrated by a 3D plot.
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/plot_owens_3d_xyp.png"></span>
+    </p>
+<p>
+      This function is used in the computation of the <a class="link" href="dist_ref/dists/skew_normal_dist.html" title="Skew Normal Distribution">Skew
+      Normal Distribution</a>. It is also used in the computation of bivariate
+      and multivariate normal distribution probabilities. The return type of this
+      function is computed using the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+      type calculation rules</em></span></a>: the result is of type <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and type T
+      otherwise.
+    </p>
+<p>
+      Owen's original paper (page 1077) provides some additional corner cases.
+    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>T(h, 0) = 0</em></span>
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>T(0, a) = ½π arctan(a)</em></span>
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>T(h, 1) = ½ G(h) [1 - G(h)]</em></span>
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="emphasis"><em>T(h, ∞) = G(|h|)</em></span>
+      </p></blockquote></div>
+<p>
+      where G(h) is the univariate normal with zero mean and unit variance integral
+      from -∞ to h.
+    </p>
+<h5>
+<a name="math_toolkit.owens_t.h2"></a>
+      <span class="phrase"><a name="math_toolkit.owens_t.accuracy"></a></span><a class="link" href="owens_t.html#math_toolkit.owens_t.accuracy">Accuracy</a>
+    </h5>
+<p>
+      Over the built-in types and range tested, errors are less than 10 * std::numeric_limits<RealType>::epsilon().
+    </p>
+<h5>
+<a name="math_toolkit.owens_t.h3"></a>
+      <span class="phrase"><a name="math_toolkit.owens_t.testing"></a></span><a class="link" href="owens_t.html#math_toolkit.owens_t.testing">Testing</a>
+    </h5>
+<p>
+      Test data was generated by Patefield and Tandy algorithms T1 and T4, and also
+      the suggested reference routine T7.
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          T1 was rejected if the result was too small compared to <code class="computeroutput"><span class="identifier">atan</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
+          (ie cancellation),
+        </li>
+<li class="listitem">
+          T4 was rejected if there was no convergence,
+        </li>
+<li class="listitem">
+          Both were rejected if they didn't agree.
+        </li>
+</ul></div>
+<p>
+      Over the built-in types and range tested, errors are less than 10 std::numeric_limits<RealType>::epsilon().
+    </p>
+<p>
+      However, that there was a whole domain (large <span class="emphasis"><em>h</em></span>, small
+      <span class="emphasis"><em>a</em></span>) where it was not possible to generate any reliable
+      test values (all the methods got rejected for one reason or another).
+    </p>
+<p>
+      There are also two sets of sanity tests: spot values are computed using Wolfram Mathematica
+      and The R Project for Statistical Computing.
+    </p>
+<h5>
+<a name="math_toolkit.owens_t.h4"></a>
+      <span class="phrase"><a name="math_toolkit.owens_t.implementation"></a></span><a class="link" href="owens_t.html#math_toolkit.owens_t.implementation">Implementation</a>
+    </h5>
+<p>
+      The function was proposed and evaluated by <a href="http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.aoms/1177728074" target="_top">Donald.
+      B. Owen, Tables for computing bivariate normal probabilities, Ann. Math. Statist.,
+      27, 1075-1090 (1956)</a>.
+    </p>
+<p>
+      The algorithms of Patefield, M. and Tandy, D. "Fast and accurate Calculation
+      of Owen's T-Function", Journal of Statistical Software, 5 (5), 1 - 25
+      (2000) are adapted for C++ with arbitrary RealType.
+    </p>
+<p>
+      The Patefield-Tandy algorithm provides six methods of evalualution (T1 to T6);
+      the best method is selected according to the values of <span class="emphasis"><em>a</em></span>
+      and <span class="emphasis"><em>h</em></span>. See the original paper and the source in owens_t.hpp
+      for details.
+    </p>
+<p>
+      The Patefield-Tandy algorithm is accurate to approximately 20 decimal places,
+      so for types with greater precision we use:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          A modified version of T1 which folds the calculation of <span class="emphasis"><em>atan(h)</em></span>
+          into the T1 series (to avoid subtracting two values similar in magnitude),
+          and then accelerates the resulting alternating series using method 1 from
+          H. Cohen, F. Rodriguez Villegas, D. Zagier, "Convergence acceleration
+          of alternating series", Bonn, (1991). The result is valid everywhere,
+          but doesn't always converge, or may become too divergent in the first few
+          terms to sum accurately. This is used for <span class="emphasis"><em>ah < 1</em></span>.
+        </li>
+<li class="listitem">
+          A modified version of T2 which is accelerated in the same manner as T1.
+          This is used for <span class="emphasis"><em>h > 1</em></span>.
+        </li>
+<li class="listitem">
+          A version of T4 only when both T1 and T2 have failed to produce an accurate
+          answer.
+        </li>
+<li class="listitem">
+          Fallback to the Patefiled Tandy algorithm when all the above methods fail:
+          this happens not at all for our test data at 100 decimal digits precision.
+          However, there is a difficult area when <span class="emphasis"><em>a</em></span> is very
+          close to 1 and the precision increases which may cause this to happen in
+          very exceptional circumstances.
+        </li>
+</ul></div>
+<p>
+      Using the above algorithm and a 100-decimal digit type, results accurate to
+      80 decimal places were obtained in the difficult area where <span class="emphasis"><em>a</em></span>
+      is close to 1, and greater than 95 decimal places elsewhere.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inv_hyper/atanh.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../utils.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/perf_over.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf_over.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Performance</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="threads.html" title="Thread Safety">
+<link rel="next" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="threads.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="building.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_perf_over">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.perf_over"></a><a class="link" href="perf_over.html" title="Performance">Performance</a>
+</h2></div></div></div>
+<p>
+      By and large the performance of this library should be acceptable for most
+      needs. However, you should note that this library's primary emphasis is on
+      accuracy and numerical stability, and <span class="emphasis"><em>not</em></span> speed.
+    </p>
+<p>
+      In terms of the algorithms used, this library aims to use the same "best
+      of breed" algorithms as many other libraries: the principle difference
+      is that this library is implemented in C++ - taking advantage of all the abstraction
+      mechanisms that C++ offers - where as most traditional numeric libraries are
+      implemented in C or FORTRAN. Traditionally languages such as C or FORTRAN are
+      perceived as easier to optimise than more complex languages like C++, so in
+      a sense this library provides a good test of current compiler technology, and
+      the "abstraction penalty" - if any - of C++ compared to other languages.
+    </p>
+<p>
+      The two most important things you can do to ensure the best performance from
+      this library are:
+    </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          Turn on your compilers optimisations: the difference between "release"
+          and "debug" builds can easily be a <a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">factor
+          of 20</a>.
+        </li>
+<li class="listitem">
+          Pick your compiler carefully: <a class="link" href="comp_compilers.html" title="Comparing Compilers">performance
+          differences of up to 8 fold</a> have been found between some Windows
+          compilers for example.
+        </li>
+</ol></div>
+<p>
+      The <a class="link" href="../perf.html" title="Chapter 14. Performance">performance section</a> contains more information
+      on the performance of this library, what you can do to fine tune it, and how
+      this library compares to some other open source alternatives.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="threads.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="building.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/perf_over0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf_over0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Performance Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="../perf.html" title="Chapter 14. Performance">
+<link rel="next" href="interp.html" title="Interpreting these Results">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../perf.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="interp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_perf_over0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.perf_over0"></a><a class="link" href="perf_over0.html" title="Performance Overview">Performance Overview</a>
+</h2></div></div></div>
+<p>
+      By and large the performance of this library should be acceptable for most
+      needs. However, you should note that this library's primary emphasis is on
+      accuracy and numerical stability, and <span class="emphasis"><em>not</em></span> speed.
+    </p>
+<p>
+      In terms of the algorithms used, this library aims to use the same "best
+      of breed" algorithms as many other libraries: the principle difference
+      is that this library is implemented in C++ - taking advantage of all the abstraction
+      mechanisms that C++ offers - where as most traditional numeric libraries are
+      implemented in C or FORTRAN. Traditionally languages such as C or FORTRAN are
+      perceived as easier to optimise than more complex languages like C++, so in
+      a sense this library provides a good test of current compiler technology, and
+      the "abstraction penalty" - if any - of C++ compared to other languages.
+    </p>
+<p>
+      The two most important things you can do to ensure the best performance from
+      this library are:
+    </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          Turn on your compilers optimisations: the difference between "release"
+          and "debug" builds can easily be a <a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">factor
+          of 20</a>.
+        </li>
+<li class="listitem">
+          Pick your compiler carefully: <a class="link" href="comp_compilers.html" title="Comparing Compilers">performance
+          differences of up to 8 fold</a> have been found between some Windows
+          compilers for example.
+        </li>
+</ol></div>
+<p>
+      The <a class="link" href="../perf.html" title="Chapter 14. Performance">performance section</a> contains more information
+      on the performance of this library, what you can do to fine tune it, and how
+      this library compares to some other open source alternatives.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../perf.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="interp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/perf_test_app.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/perf_test_app.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Performance Test Application</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="comparisons.html" title="Comparisons to Other Open Source Libraries">
+<link rel="next" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="comparisons.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../backgrounders.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_perf_test_app">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.perf_test_app"></a><a class="link" href="perf_test_app.html" title="The Performance Test Application">The Performance Test Application</a>
+</h2></div></div></div>
+<p>
+      Under <span class="emphasis"><em>boost-path</em></span>/libs/math/performance you will find a
+      (fairly rudimentary) performance test application for this library.
+    </p>
+<p>
+      To run this application yourself, build the all the .cpp files in <span class="emphasis"><em>boost-path</em></span>/libs/math/performance
+      into an application using your usual release-build settings. Run the application
+      with --help to see a full list of options, or with --all to test everything
+      (which takes quite a while), or with --tune to test the <a class="link" href="tuning.html" title="Performance Tuning Macros">available
+      performance tuning options</a>.
+    </p>
+<p>
+      If you want to use this application to test the effect of changing any of the
+      <a class="link" href="../policy.html" title="Chapter 13. Policies">Policies</a>, then you will need to build and run
+      it twice: once with the default <a class="link" href="../policy.html" title="Chapter 13. Policies">Policies</a>, and
+      then a second time with the <a class="link" href="../policy.html" title="Chapter 13. Policies">Policies</a> you want
+      to test set as the default.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="comparisons.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../backgrounders.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,108 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policies</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="config_macros.html" title="Configuration Macros">
+<link rel="next" href="threads.html" title="Thread Safety">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="config_macros.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="threads.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_overview">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.pol_overview"></a><a class="link" href="pol_overview.html" title="Policies">Policies</a>
+</h2></div></div></div>
+<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="pol_tutorial.html" title="Policy Tutorial">policy tutorial</a>
+      and the <a class="link" href="pol_ref.html" title="Policy Reference">policy reference</a>.
+    </p>
+<p>
+      Generally speaking, unless you find that the <a class="link" href="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>
+      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>
+      Although the policy mechanism itself is rather complicated, in practice it
+      is easy to use, and very flexible.
+    </p>
+<p>
+      Using policies you can control:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <a class="link" href="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 class="listitem">
+          How <a class="link" href="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 class="listitem">
+          What working <a class="link" href="pol_ref/precision_pol.html" title="Precision Policies">precision</a>
+          should be used to calculate results.
+        </li>
+<li class="listitem">
+          What to do when a <a class="link" href="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 class="listitem">
+          Whether <a class="link" href="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 class="listitem">
+          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#math_toolkit.error_handling.evaluation_error">evaluation_error</a>.
+        </li>
+</ul></div>
+<p>
+      You can control policies:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Using <a class="link" href="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 class="listitem">
+          At your chosen <a class="link" href="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 class="listitem">
+          In an ad-hoc manner <a class="link" href="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="pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">statistical
+          distribution</a>.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="config_macros.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="threads.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_overview0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_overview0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,108 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policy Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="Chapter 13. Policies">
+<link rel="prev" href="../policy.html" title="Chapter 13. Policies">
+<link rel="next" href="pol_tutorial.html" title="Policy Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../policy.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_overview0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.pol_overview0"></a><a class="link" href="pol_overview0.html" title="Policy Overview">Policy Overview</a>
+</h2></div></div></div>
+<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="pol_tutorial.html" title="Policy Tutorial">policy tutorial</a>
+      and the <a class="link" href="pol_ref.html" title="Policy Reference">policy reference</a>.
+    </p>
+<p>
+      Generally speaking, unless you find that the <a class="link" href="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>
+      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>
+      Although the policy mechanism itself is rather complicated, in practice it
+      is easy to use, and very flexible.
+    </p>
+<p>
+      Using policies you can control:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <a class="link" href="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 class="listitem">
+          How <a class="link" href="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 class="listitem">
+          What working <a class="link" href="pol_ref/precision_pol.html" title="Precision Policies">precision</a>
+          should be used to calculate results.
+        </li>
+<li class="listitem">
+          What to do when a <a class="link" href="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 class="listitem">
+          Whether <a class="link" href="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 class="listitem">
+          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#math_toolkit.error_handling.evaluation_error">evaluation_error</a>.
+        </li>
+</ul></div>
+<p>
+      You can control policies:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Using <a class="link" href="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 class="listitem">
+          At your chosen <a class="link" href="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 class="listitem">
+          In an ad-hoc manner <a class="link" href="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="pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">statistical
+          distribution</a>.
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../policy.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policy Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="Chapter 13. Policies">
+<link rel="prev" href="pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">
+<link rel="next" href="pol_ref/error_handling_policies.html" title="Error Handling Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="pol_tutorial/understand_dis_quant.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref/error_handling_policies.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.pol_ref"></a><a class="link" href="pol_ref.html" title="Policy Reference">Policy Reference</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="pol_ref/error_handling_policies.html">Error Handling
+      Policies</a></span></dt>
+<dt><span class="section"><a href="pol_ref/internal_promotion.html">Internal Floating-point
+      Promotion Policies</a></span></dt>
+<dt><span class="section"><a href="pol_ref/assert_undefined.html">Mathematically
+      Undefined Function Policies</a></span></dt>
+<dt><span class="section"><a href="pol_ref/discrete_quant_ref.html">Discrete Quantile
+      Policies</a></span></dt>
+<dt><span class="section">Precision Policies</span></dt>
+<dt><span class="section"><a href="pol_ref/iteration_pol.html">Iteration Limits
+      Policies</a></span></dt>
+<dt><span class="section"><a href="pol_ref/policy_defaults.html">Using Macros to
+      Change the Policy Defaults</a></span></dt>
+<dt><span class="section"><a href="pol_ref/namespace_pol.html">Setting Polices at
+      Namespace Scope</a></span></dt>
+<dt><span class="section">Policy Class Reference</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="pol_tutorial/understand_dis_quant.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref/error_handling_policies.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/assert_undefined.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/assert_undefined.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Mathematically Undefined Function Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="internal_promotion.html" title="Internal Floating-point Promotion Policies">
+<link rel="next" href="discrete_quant_ref.html" title="Discrete Quantile Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="internal_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="discrete_quant_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_assert_undefined">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.assert_undefined"></a><a class="link" href="assert_undefined.html" title="Mathematically Undefined Function Policies">Mathematically
+      Undefined Function Policies</a>
+</h3></div></div></div>
+<p>
+        There are some functions that are generic (they are present for all the statistical
+        distributions supported) but which may be mathematically undefined for certain
+        distributions, but defined for others.
+      </p>
+<p>
+        For example, the Cauchy distribution does not have a meaningful mean, so
+        what should
+      </p>
+<pre class="programlisting"><span class="identifier">mean</span><span class="special">(</span><span class="identifier">cauchy</span><span class="special"><>());</span>
+</pre>
+<p>
+        return, and should such an expression even compile at all?
+      </p>
+<p>
+        The default behaviour is for all such functions to not compile at all - in
+        fact they will raise a <a href="http://www.boost.org/libs/static_assert/index.html" target="_top">static
+        assertion</a> - but by changing the policy we can have them return the
+        result of a domain error instead (which may well throw an exception, depending
+        on the error handling policy).
+      </p>
+<p>
+        This behaviour is controlled by the <code class="computeroutput"><span class="identifier">assert_undefined</span><span class="special"><></span></code> policy:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">assert_undefined</span><span class="special">;</span>
+
+<span class="special">}}}</span> <span class="comment">//namespaces</span>
+</pre>
+<p>
+        For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+<span class="comment">// This will not compile, cauchy has no mean!</span>
+<span class="keyword">double</span> <span class="identifier">m1</span> <span class="special">=</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">cauchy</span><span class="special">());</span>
+
+<span class="comment">// This will compile, but raises a domain error!</span>
+<span class="keyword">double</span> <span class="identifier">m2</span> <span class="special">=</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">cauchy_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">assert_undefined</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="special">>());</span>
+</pre>
+<p>
+        <code class="computeroutput"><span class="identifier">policy</span><span class="special"><</span><span class="identifier">assert_undefined</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span></code>
+        behaviour can also be obtained by defining the macro
+      </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
+</pre>
+<p>
+        at the head of the file - see <a class="link" href="policy_defaults.html" title="Using Macros to Change the Policy Defaults">Using
+        Macros to Change the Policy Defaults</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="internal_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="discrete_quant_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/discrete_quant_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/discrete_quant_ref.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,242 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Discrete Quantile Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="assert_undefined.html" title="Mathematically Undefined Function Policies">
+<link rel="next" href="precision_pol.html" title="Precision Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="assert_undefined.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="precision_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_discrete_quant_ref">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.discrete_quant_ref"></a><a class="link" href="discrete_quant_ref.html" title="Discrete Quantile Policies">Discrete Quantile
+      Policies</a>
+</h3></div></div></div>
+<p>
+        If a statistical distribution is <span class="emphasis"><em>discrete</em></span> then the random
+        variable can only have integer values - this leaves us with a problem when
+        calculating quantiles - we can either ignore the discreteness of the distribution
+        and return a real value, or we can round to an integer. As it happens, computing
+        integer values can be substantially faster than calculating a real value,
+        so there are definite advantages to returning an integer, but we do then
+        need to decide how best to round the result. The <code class="computeroutput"><span class="identifier">discrete_quantile</span></code>
+        policy defines how discrete quantiles work, and how integer results are rounded:
+      </p>
+<pre class="programlisting"><span class="keyword">enum</span> <span class="identifier">discrete_quantile_policy_type</span>
+<span class="special">{</span>
+   <span class="identifier">real</span><span class="special">,</span>
+   <span class="identifier">integer_round_outwards</span><span class="special">,</span> <span class="comment">// default</span>
+   <span class="identifier">integer_round_inwards</span><span class="special">,</span>
+   <span class="identifier">integer_round_down</span><span class="special">,</span>
+   <span class="identifier">integer_round_up</span><span class="special">,</span>
+   <span class="identifier">integer_round_nearest</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">discrete_quantile_policy_type</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">discrete_quantile</span><span class="special">;</span>
+</pre>
+<p>
+        The values that <code class="computeroutput"><span class="identifier">discrete_quantile</span></code>
+        can take have the following meanings:
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h0"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.real"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.real">real</a>
+      </h6>
+<p>
+        Ignores the discreteness of the distribution, and returns a real-valued result.
+        For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span>
+      <span class="keyword">double</span><span class="special">,</span>
+      <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">real</span><span class="special">></span> <span class="special">></span>
+   <span class="special">></span> <span class="identifier">dist_type</span><span class="special">;</span>
+
+<span class="comment">// Lower 5% quantile:</span>
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span>
+<span class="comment">// Upper 95% quantile:</span>
+<span class="keyword">double</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span>
+</pre>
+<p>
+        Results in <code class="computeroutput"><span class="identifier">x</span> <span class="special">=</span>
+        <span class="number">27.3898</span></code> and <code class="computeroutput"><span class="identifier">y</span>
+        <span class="special">=</span> <span class="number">68.1584</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h1"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.integer_round_outwards"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.integer_round_outwards">integer_round_outwards</a>
+      </h6>
+<p>
+        This is the default policy: an integer value is returned so that:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Lower quantiles (where the probability is less than 0.5) are rounded
+            down.
+          </li>
+<li class="listitem">
+            Upper quantiles (where the probability is greater than 0.5) are rounded
+            up.
+          </li>
+</ul></div>
+<p>
+        This is normally the safest rounding policy, since it ensures that both one
+        and two sided intervals are guaranteed to have <span class="emphasis"><em>at least</em></span>
+        the requested coverage. For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span>
+
+<span class="comment">// Use the default rounding policy integer_round_outwards.</span>
+<span class="comment">// Lower quantile rounded down:</span>
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span> <span class="comment">// rounded up 27 from 27.3898</span>
+<span class="comment">// Upper quantile rounded up:</span>
+<span class="keyword">double</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span> <span class="comment">// rounded down to 69 from 68.1584</span>
+</pre>
+<p>
+        Results in <code class="computeroutput"><span class="identifier">x</span> <span class="special">=</span>
+        <span class="number">27</span></code> (rounded down from 27.3898) and
+        <code class="computeroutput"><span class="identifier">y</span> <span class="special">=</span>
+        <span class="number">69</span></code> (rounded up from 68.1584).
+      </p>
+<p>
+        The variables x and y are now defined so that:
+      </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special"><=</span> <span class="number">0.05</span>
+<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">>=</span> <span class="number">0.95</span>
+</pre>
+<p>
+        In other words we guarantee <span class="emphasis"><em>at least 90% coverage in the central
+        region overall</em></span>, and also <span class="emphasis"><em>no more than 5% coverage in
+        each tail</em></span>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h2"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.integer_round_inwards"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.integer_round_inwards">integer_round_inwards</a>
+      </h6>
+<p>
+        This is the opposite of <span class="emphasis"><em>integer_round_outwards</em></span>: an integer
+        value is returned so that:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Lower quantiles (where the probability is less than 0.5) are rounded
+            <span class="emphasis"><em>up</em></span>.
+          </li>
+<li class="listitem">
+            Upper quantiles (where the probability is greater than 0.5) are rounded
+            <span class="emphasis"><em>down</em></span>.
+          </li>
+</ul></div>
+<p>
+        For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span>
+      <span class="keyword">double</span><span class="special">,</span>
+      <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_inwards</span><span class="special">></span> <span class="special">></span>
+   <span class="special">></span> <span class="identifier">dist_type</span><span class="special">;</span>
+
+<span class="comment">// Lower quantile rounded up:</span>
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span> <span class="comment">// 28 rounded up from 27.3898</span>
+<span class="comment">// Upper quantile rounded down:</span>
+<span class="keyword">double</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span> <span class="comment">// 68 rounded down from 68.1584</span>
+</pre>
+<p>
+        Results in <code class="computeroutput"><span class="identifier">x</span> <span class="special">=</span>
+        <span class="number">28</span></code> (rounded up from 27.3898) and <code class="computeroutput"><span class="identifier">y</span> <span class="special">=</span> <span class="number">68</span></code>
+        (rounded down from 68.1584).
+      </p>
+<p>
+        The variables x and y are now defined so that:
+      </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">>=</span> <span class="number">0.05</span>
+<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">y</span><span class="special">)</span> <span class="special"><=</span> <span class="number">0.95</span>
+</pre>
+<p>
+        In other words we guarantee <span class="emphasis"><em>at no more than 90% coverage in the
+        central region overall</em></span>, and also <span class="emphasis"><em>at least 5% coverage
+        in each tail</em></span>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h3"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.integer_round_down"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.integer_round_down">integer_round_down</a>
+      </h6>
+<p>
+        Always rounds down to an integer value, no matter whether it's an upper or
+        a lower quantile.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h4"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.integer_round_up"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.integer_round_up">integer_round_up</a>
+      </h6>
+<p>
+        Always rounds up to an integer value, no matter whether it's an upper or
+        a lower quantile.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.discrete_quant_ref.h5"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.discrete_quant_ref.integer_round_nearest"></a></span><a class="link" href="discrete_quant_ref.html#math_toolkit.pol_ref.discrete_quant_ref.integer_round_nearest">integer_round_nearest</a>
+      </h6>
+<p>
+        Always rounds to the nearest integer value, no matter whether it's an upper
+        or a lower quantile. This will produce the requested coverage <span class="emphasis"><em>in
+        the average case</em></span>, but for any specific example may results in
+        either significantly more or less coverage than the requested amount. For
+        example:
+      </p>
+<p>
+        For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span>
+      <span class="keyword">double</span><span class="special">,</span>
+      <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_nearest</span><span class="special">></span> <span class="special">></span>
+   <span class="special">></span> <span class="identifier">dist_type</span><span class="special">;</span>
+
+<span class="comment">// Lower quantile rounded (down) to nearest:</span>
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span> <span class="comment">// 27</span>
+<span class="comment">// Upper quantile rounded (down) to nearest:</span>
+<span class="keyword">double</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist_type</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span> <span class="comment">// 68</span>
+</pre>
+<p>
+        Results in <code class="computeroutput"><span class="identifier">x</span> <span class="special">=</span>
+        <span class="number">27</span></code> (rounded from 27.3898) and <code class="computeroutput"><span class="identifier">y</span> <span class="special">=</span> <span class="number">68</span></code>
+        (rounded from 68.1584).
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="assert_undefined.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="precision_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/error_handling_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/error_handling_policies.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,763 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Handling Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="../pol_ref.html" title="Policy Reference">
+<link rel="next" href="internal_promotion.html" title="Internal Floating-point Promotion Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../pol_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="internal_promotion.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_error_handling_policies">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.error_handling_policies"></a><a class="link" href="error_handling_policies.html" title="Error Handling Policies">Error Handling
+      Policies</a>
+</h3></div></div></div>
+<p>
+        There are two orthogonal aspects to error handling:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            What to do (if anything) with the error.
+          </li>
+<li class="listitem">
+            What kind of error is being raised.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.pol_ref.error_handling_policies.h0"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.available_actions_when_an_error_"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.available_actions_when_an_error_">Available
+        Actions When an Error is Raised</a>
+      </h5>
+<p>
+        What to do with the error is encapsulated by an enumerated type:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
+
+<span class="keyword">enum</span> <span class="identifier">error_policy_type</span>
+<span class="special">{</span>
+   <span class="identifier">throw_on_error</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="comment">// throw an exception.</span>
+   <span class="identifier">errno_on_error</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="comment">// set ::errno & return 0, NaN, infinity or best guess.</span>
+   <span class="identifier">ignore_error</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span> <span class="comment">// return 0, NaN, infinity or best guess.</span>
+   <span class="identifier">user_error</span> <span class="special">=</span> <span class="number">3</span>  <span class="comment">// call a user-defined error handler.</span>
+<span class="special">};</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The various enumerated values have the following meanings:
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.error_handling_policies.h1"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.throw_on_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.throw_on_error">throw_on_error</a>
+      </h6>
+<p>
+        Will throw one of the following exceptions, depending upon the type of the
+        error:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Error Type
+                </p>
+              </th>
+<th>
+                <p>
+                  Exception
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Domain Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::domain_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Pole Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::domain_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Overflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::overflow_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Underflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::underflow_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Denorm Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::underflow_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Evaluation Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::evaluation_error
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Indeterminate Result Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::domain_error
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h6>
+<a name="math_toolkit.pol_ref.error_handling_policies.h2"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.errno_on_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.errno_on_error">errno_on_error</a>
+      </h6>
+<p>
+        Will set global ::errno
+        <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+        to one of the following values depending upon the error type (often EDOM
+        = 33 and ERANGE = 34), and then return the same value as if the error had
+        been ignored:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Error Type
+                </p>
+              </th>
+<th>
+                <p>
+                  errno value
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Domain Error
+                </p>
+              </td>
+<td>
+                <p>
+                  EDOM
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Pole Error
+                </p>
+              </td>
+<td>
+                <p>
+                  EDOM
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Overflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  ERANGE
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Underflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  ERANGE
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Denorm Error
+                </p>
+              </td>
+<td>
+                <p>
+                  ERANGE
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Evaluation Error
+                </p>
+              </td>
+<td>
+                <p>
+                  EDOM
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Indeterminate Result Error
+                </p>
+              </td>
+<td>
+                <p>
+                  EDOM
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h6>
+<a name="math_toolkit.pol_ref.error_handling_policies.h3"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.ignore_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.ignore_error">ignore_error</a>
+      </h6>
+<p>
+        Will return one of the values below depending on the error type (<code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+        is NOT changed)::
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Error Type
+                </p>
+              </th>
+<th>
+                <p>
+                  Returned Value
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Domain Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::numeric_limits<T>::quiet_NaN()
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Pole Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::numeric_limits<T>::quiet_NaN()
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Overflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  std::numeric_limits<T>::infinity()
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Underflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Denorm Error
+                </p>
+              </td>
+<td>
+                <p>
+                  The denormalised value.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Evaluation Error
+                </p>
+              </td>
+<td>
+                <p>
+                  The best guess (perhaps NaN) as to the result: which may be significantly
+                  in error.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Indeterminate Result Error
+                </p>
+              </td>
+<td>
+                <p>
+                  Depends on the function where the error occurred
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h6>
+<a name="math_toolkit.pol_ref.error_handling_policies.h4"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.user_error"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.user_error">user_error</a>
+      </h6>
+<p>
+        Will call a user defined error handler: these are forward declared in boost/math/policies/error_handling.hpp,
+        but the actual definitions must be provided by the user:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_pole_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_overflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_underflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_denorm_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_rounding_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_evaluation_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_indeterminate_result_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Note that the strings <span class="emphasis"><em>function</em></span> and <span class="emphasis"><em>message</em></span>
+        may contain "%1%" format specifiers designed to be used in conjunction
+        with Boost.Format. If these strings are to be presented to the program's
+        end-user then the "%1%" format specifier should be replaced with
+        the name of type T in the <span class="emphasis"><em>function</em></span> string, and if there
+        is a %1% specifier in the <span class="emphasis"><em>message</em></span> string then it should
+        be replaced with the value of <span class="emphasis"><em>val</em></span>.
+      </p>
+<p>
+        There is more information on user-defined error handlers in the <a class="link" href="../pol_tutorial/user_def_err_pol.html" title="Calling User Defined Error Handlers">tutorial
+        here</a>.
+      </p>
+<h5>
+<a name="math_toolkit.pol_ref.error_handling_policies.h5"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.kinds_of_error_raised"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.kinds_of_error_raised">Kinds
+        of Error Raised</a>
+      </h5>
+<p>
+        There are six kinds of error reported by this library, which are summarised
+        in the following table:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Error Type
+                </p>
+              </th>
+<th>
+                <p>
+                  Policy Class
+                </p>
+              </th>
+<th>
+                <p>
+                  Description
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  Domain Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::domain_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when more or more arguments are outside the defined range
+                  of the function.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">throw_on_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is set to <span class="emphasis"><em>throw_on_error</em></span> then
+                  throws <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Pole Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::pole_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when more or more arguments would cause the function to
+                  be evaluated at a pole.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">throw_on_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throw
+                  a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Overflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::overflow_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when the result of the function is outside the representable
+                  range of the floating point type used.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">throw_on_error</span><span class="special">></span></code>.
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throws
+                  a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code>.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Underflow Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::underflow_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when the result of the function is too small to be represented
+                  in the floating point type used.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the specified action is <span class="emphasis"><em>throw_on_error</em></span>
+                  then throws a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Denorm Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::denorm_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when the result of the function is a denormalised value.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throws
+                  a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Rounding Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::rounding_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised When one of the rounding functions <a class="link" href="../rounding/round.html" title="Rounding Functions">round</a>,
+                  <a class="link" href="../rounding/trunc.html" title="Truncation Functions">trunc</a> or <a class="link" href="../rounding/modf.html" title="Integer and Fractional Part Splitting (modf)">modf</a> is called with
+                  an argument that has no integer representation, or is too large
+                  to be represented in the result type
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">rounding_error</span><span class="special"><</span><span class="identifier">throw_on_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throws
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">rounding_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Evaluation Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::evaluation_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when the result of the function is well defined and finite,
+                  but we were unable to compute it. Typically this occurs when an
+                  iterative method fails to converge. Of course ideally this error
+                  should never be raised: feel free to report it as a bug if it is!
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">throw_on_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throws
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">evaluation_error</span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Indeterminate Result Error
+                </p>
+              </td>
+<td>
+                <p>
+                  boost::math::policies::indeterminate_result_error<<span class="emphasis"><em>action</em></span>>
+                </p>
+              </td>
+<td>
+                <p>
+                  Raised when the result of a function is not defined for the values
+                  that were passed to it.
+                </p>
+                <p>
+                  Defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">indeterminate_result_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span></code>
+                </p>
+                <p>
+                  When the action is <span class="emphasis"><em>throw_on_error</em></span> then throws
+                  <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.pol_ref.error_handling_policies.h6"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.error_handling_policies.examples"></a></span><a class="link" href="error_handling_policies.html#math_toolkit.pol_ref.error_handling_policies.examples">Examples</a>
+      </h5>
+<p>
+        Suppose we want a call to <code class="computeroutput"><span class="identifier">tgamma</span></code>
+        to behave in a C-compatible way and set global <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code> rather than throw an exception, we
+        can achieve this at the call site using:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="comment">//using namespace boost::math::policies; may also be convenient.</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">errno_on_error</span><span class="special">;</span>
+
+<span class="comment">// Define a policy:</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+  <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+  <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+  <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+  <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">my_value</span> <span class="special">=</span> <span class="number">0.</span><span class="special">;</span> <span class="comment">// </span>
+
+<span class="comment">// Call the function applying my_policy:</span>
+<span class="keyword">double</span> <span class="identifier">t1</span> <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">my_value</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">());</span>
+
+<span class="comment">// Alternatively (and equivalently) we could use helpful function</span>
+<span class="comment">// make_policy and define everything at the call site:</span>
+<span class="keyword">double</span> <span class="identifier">t2</span> <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">my_value</span><span class="special">,</span>
+  <span class="identifier">make_policy</span><span class="special">(</span>
+    <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+    <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+    <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+    <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>()</span> <span class="special">)</span>
+  <span class="special">);</span>
+</pre>
+<p>
+        Suppose we want a statistical distribution to return infinities, rather than
+        throw exceptions, then we can use:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="comment">// Define a specific policy:</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+      <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span>
+      <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+<span class="comment">// Define the distribution, using my_policy:</span>
+<span class="keyword">typedef</span> <span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">my_norm</span><span class="special">;</span>
+
+<span class="comment">// Construct a my_norm distribution, using default mean and standard deviation,</span>
+<span class="comment">// and get a 0.05 or 5% quantile:</span>
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_norm</span><span class="special">(),</span> <span class="number">0.05</span><span class="special">);</span> <span class="comment">// = -1.64485</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../pol_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="internal_promotion.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/internal_promotion.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/internal_promotion.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Internal Floating-point Promotion Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="error_handling_policies.html" title="Error Handling Policies">
+<link rel="next" href="assert_undefined.html" title="Mathematically Undefined Function Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="error_handling_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="assert_undefined.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_internal_promotion">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.internal_promotion"></a><a class="link" href="internal_promotion.html" title="Internal Floating-point Promotion Policies">Internal Floating-point
+      Promotion Policies</a>
+</h3></div></div></div>
+<p>
+        Normally when evaluating a function at say <code class="computeroutput"><span class="keyword">float</span></code>
+        precision, maximal accuracy is assured by conducting the calculation at
+        <code class="computeroutput"><span class="keyword">double</span></code> precision internally,
+        and then rounding the result. There are two policies that control whether
+        internal promotion to a higher precision floating-point type takes place,
+        or not:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Policy
+                </p>
+              </th>
+<th>
+                <p>
+                  Meaning
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
+                </p>
+              </td>
+<td>
+                <p>
+                  Indicates whether <code class="computeroutput"><span class="keyword">float</span></code>
+                  arguments should be promoted to <code class="computeroutput"><span class="keyword">double</span></code>
+                  precision internally: defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special"><</span><span class="keyword">true</span><span class="special">></span></code>
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_double</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
+                </p>
+              </td>
+<td>
+                <p>
+                  Indicates whether <code class="computeroutput"><span class="keyword">double</span></code>
+                  arguments should be promoted to <code class="computeroutput"><span class="keyword">long</span>
+                  <span class="keyword">double</span></code> precision internally:
+                  defaults to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">true</span><span class="special">></span></code>
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.pol_ref.internal_promotion.h0"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.internal_promotion.examples"></a></span><a class="link" href="internal_promotion.html#math_toolkit.pol_ref.internal_promotion.examples">Examples</a>
+      </h5>
+<p>
+        Suppose we want <code class="computeroutput"><span class="identifier">tgamma</span></code> to
+        be evaluated without internal promotion to <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code>, then we could use:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="comment">// Define a new policy *not* internally promoting RealType to double:</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+      <span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span>
+      <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+<span class="comment">// Call the function, applying the new policy:</span>
+<span class="keyword">double</span> <span class="identifier">t1</span> <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">some_value</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">());</span>
+
+<span class="comment">// Alternatively we could use helper function make_policy,</span>
+<span class="comment">// and concisely define everything at the call site:</span>
+<span class="keyword">double</span> <span class="identifier">t2</span> <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">some_value</span><span class="special">,</span> <span class="identifier">make_policy</span><span class="special">(</span><span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">>()));</span>
+</pre>
+<p>
+        Alternatively, suppose we want a distribution to perform calculations without
+        promoting <code class="computeroutput"><span class="keyword">float</span></code> to <code class="computeroutput"><span class="keyword">double</span></code>, then we could use:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="comment">// Define a policy:</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+      <span class="identifier">promote_float</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span>
+      <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+<span class="comment">// Define the new normal distribution using my_policy:</span>
+<span class="keyword">typedef</span> <span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">my_norm</span><span class="special">;</span>
+
+<span class="comment">// Get a quantile:</span>
+<span class="keyword">float</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_norm</span><span class="special">(),</span> <span class="number">0.05f</span><span class="special">);</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error_handling_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="assert_undefined.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/iteration_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/iteration_pol.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,57 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Iteration Limits Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="precision_pol.html" title="Precision Policies">
+<link rel="next" href="policy_defaults.html" title="Using Macros to Change the Policy Defaults">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="precision_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_iteration_pol">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.iteration_pol"></a><a class="link" href="iteration_pol.html" title="Iteration Limits Policies">Iteration Limits
+      Policies</a>
+</h3></div></div></div>
+<p>
+        There are two policies that effect the iterative algorithms used to implement
+        the special functions in this library:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">limit</span> <span class="special">=</span> <span class="identifier">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">max_series_iterations</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">limit</span> <span class="special">=</span> <span class="identifier">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">max_root_iterations</span><span class="special">;</span>
+</pre>
+<p>
+        The class <code class="computeroutput"><span class="identifier">max_series_iterations</span></code>
+        determines the maximum number of iterations permitted in a series evaluation,
+        before the special function gives up and returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.evaluation_error">evaluation_error</a>.
+      </p>
+<p>
+        The class <code class="computeroutput"><span class="identifier">max_root_iterations</span></code>
+        determines the maximum number of iterations permitted in a root-finding algorithm
+        before the special function gives up and returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.evaluation_error">evaluation_error</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="precision_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/namespace_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/namespace_pol.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Setting Polices at Namespace Scope</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="policy_defaults.html" title="Using Macros to Change the Policy Defaults">
+<link rel="next" href="pol_ref_ref.html" title="Policy Class Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="policy_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_namespace_pol">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.namespace_pol"></a><a class="link" href="namespace_pol.html" title="Setting Polices at Namespace Scope">Setting Polices at
+      Namespace Scope</a>
+</h3></div></div></div>
+<p>
+        Sometimes what you really want to do is bring all the special functions,
+        or all the distributions into a specific namespace-scope, along with a specific
+        policy to use with them. There are two macros defined to assist with that:
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">Policy</span><span class="special">)</span>
+</pre>
+<p>
+        and:
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">)</span>
+</pre>
+<p>
+        You can use either of these macros after including any special function or
+        distribution header. For example:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//using boost::math::tgamma;</span>
+<span class="comment">// Need not declare using boost::math::tgamma here,</span>
+<span class="comment">// because will define tgamma in myspace using macro below.</span>
+
+<span class="keyword">namespace</span> <span class="identifier">myspace</span>
+<span class="special">{</span>
+  <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+  <span class="comment">// Define a policy that does not throw on overflow:</span>
+  <span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">></span> <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+  <span class="comment">// Define the special functions in this scope to use the policy:   </span>
+  <span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">my_policy</span><span class="special">)</span>
+<span class="special">}</span>
+
+<span class="comment">// Now we can use myspace::tgamma etc.</span>
+<span class="comment">// They will automatically use "my_policy":</span>
+<span class="comment">//</span>
+<span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">myspace</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="number">30.0</span><span class="special">);</span> <span class="comment">// Will *not* throw on overflow,</span>
+<span class="comment">// despite the large value of factorial 30 = 265252859812191058636308480000000</span>
+<span class="comment">// unlike default policy boost::math::tgamma;</span>
+</pre>
+<p>
+        In this example, using BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS results in a
+        set of thin inline forwarding functions being defined:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">){</span> <span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">());</span> <span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">)</span> <span class="special">(</span> <span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">());</span> <span class="special">}</span>
+</pre>
+<p>
+        and so on. Note that while a forwarding function is defined for all the special
+        functions, however, unless you include the specific header for the special
+        function you use (or boost/math/special_functions.hpp to include everything),
+        you will get linker errors from functions that are forward declared, but
+        not defined.
+      </p>
+<p>
+        We can do the same thing with the distributions, but this time we need to
+        specify the floating-point type to use:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">namespace</span> <span class="identifier">myspace</span>
+<span class="special">{</span> <span class="comment">// using namespace boost::math::policies; // May be convenient in myspace.</span>
+
+  <span class="comment">// Define a policy called my_policy to use.</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+
+<span class="comment">// In this case we want all the distribution accessor functions to compile,</span>
+<span class="comment">// even if they are mathematically undefined, so</span>
+<span class="comment">// make the policy assert_undefined.</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">assert_undefined</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">assert_undefined</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+<span class="comment">// Finally apply this policy to type double.</span>
+<span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">)</span>
+<span class="special">}</span> <span class="comment">// namespace myspace</span>
+
+<span class="comment">// Now we can use myspace::cauchy etc, which will use policy</span>
+<span class="comment">// myspace::mypolicy:</span>
+<span class="comment">//</span>
+<span class="comment">// This compiles but throws a domain error exception at runtime.</span>
+<span class="comment">// Caution! If you omit the try'n'catch blocks, </span>
+<span class="comment">// it will just silently terminate, giving no clues as to why! </span>
+<span class="comment">// So try'n'catch blocks are very strongly recommended.</span>
+
+<span class="keyword">void</span> <span class="identifier">test_cauchy</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="keyword">try</span>
+   <span class="special">{</span>
+      <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">cauchy</span><span class="special">());</span>  <span class="comment">// Cauchy does not have a mean!</span>
+   <span class="special">}</span>
+   <span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+        In this example the result of BOOST_MATH_DECLARE_DISTRIBUTIONS is to declare
+        a typedef for each distribution like this:
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">cauchy</span><span class="special">;</span>
+<span class="identifier">tyepdef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">gamma</span><span class="special">;</span>
+</pre>
+<p>
+        and so on. The name given to each typedef is the name of the distribution
+        with the "_distribution" suffix removed.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="policy_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/pol_ref_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/pol_ref_ref.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,248 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policy Class Reference</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="namespace_pol.html" title="Setting Polices at Namespace Scope">
+<link rel="next" href="../../perf.html" title="Chapter 14. Performance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="namespace_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../perf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_pol_ref_ref">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.pol_ref_ref"></a><a class="link" href="pol_ref_ref.html" title="Policy Class Reference">Policy Class Reference</a>
+</h3></div></div></div>
+<p>
+        There's very little to say here, the <code class="computeroutput"><span class="identifier">policy</span></code>
+        class is just a rag-bag compile-time container for a collection of policies:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">policies</span><span class="special">/</span><span class="identifier">policy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">policies</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A1</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A2</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A3</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A4</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A5</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A6</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A7</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A8</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A9</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A10</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A11</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A12</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A13</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">policy</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">domain_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">pole_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">overflow_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">underflow_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">denorm_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">rounding_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">evaluation_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">indeterminate_result_error_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">precision_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">promote_float_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">promote_double_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">discrete_quantile_type</span><span class="special">;</span>
+   <span class="keyword">typedef</span> <span class="emphasis"><em>computed-from-template-arguments</em></span> <span class="identifier">assert_undefined_type</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special"><...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...></span>
+<span class="keyword">typename</span> <span class="identifier">normalise</span><span class="special"><</span><span class="identifier">policy</span><span class="special"><>,</span> <span class="identifier">A1</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">make_policy</span><span class="special">(...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">..);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A1</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A2</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A3</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A4</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A5</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A6</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A7</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A8</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A9</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A10</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A11</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A12</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A13</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">normalise</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> computed-from-template-arguments <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        The member typedefs of class <code class="computeroutput"><span class="identifier">policy</span></code>
+        are intended for internal use but are documented briefly here for the sake
+        of completeness.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">domain_error_type</span>
+</pre>
+<p>
+        Specifies how domain errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">domain_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">pole_error_type</span>
+</pre>
+<p>
+        Specifies how pole-errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">pole_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">overflow_error_type</span>
+</pre>
+<p>
+        Specifies how overflow errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">overflow_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">underflow_error_type</span>
+</pre>
+<p>
+        Specifies how underflow errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">underflow_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">denorm_error_type</span>
+</pre>
+<p>
+        Specifies how denorm errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">denorm_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">rounding_error_type</span>
+</pre>
+<p>
+        Specifies how rounding errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">rounding_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">rounding_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">evaluation_error_type</span>
+</pre>
+<p>
+        Specifies how evaluation errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">evaluation_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">indeterminate_error_type</span>
+</pre>
+<p>
+        Specifies how indeterminate result errors are handled, will be an instance
+        of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">indeterminate_result_error</span><span class="special"><></span></code>
+        with the template argument to <code class="computeroutput"><span class="identifier">indeterminate_result_error</span></code>
+        one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
+        enumerated values.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">precision_type</span>
+</pre>
+<p>
+        Specifies the internal precision to use in binary digits (uses zero to represent
+        whatever the default precision is). Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></code> which
+        in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></code>.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">promote_float_type</span>
+</pre>
+<p>
+        Specifies whether or not to promote <code class="computeroutput"><span class="keyword">float</span></code>
+        arguments to <code class="computeroutput"><span class="keyword">double</span></code> precision
+        internally. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
+        which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">promote_double_type</span>
+</pre>
+<p>
+        Specifies whether or not to promote <code class="computeroutput"><span class="keyword">double</span></code>
+        arguments to <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+        precision internally. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
+        which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">discrete_quantile_type</span>
+</pre>
+<p>
+        Specifies how discrete quantiles are evaluated, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">discrete_quantile</span><span class="special"><></span></code>
+        instantiated with one of the <code class="computeroutput"><span class="identifier">discrete_quantile_policy_type</span></code>
+        enumerated type.
+      </p>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special"><...>::</span><span class="identifier">assert_undefined_type</span>
+</pre>
+<p>
+        Specifies whether mathematically-undefined properties are asserted as compile-time
+        errors, or treated as runtime errors instead. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">assert_undefined</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code> which
+        in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...></span>
+<span class="keyword">typename</span> <span class="identifier">normalise</span><span class="special"><</span><span class="identifier">policy</span><span class="special"><>,</span> <span class="identifier">A1</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">make_policy</span><span class="special">(...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">..);</span>
+</pre>
+<p>
+        <code class="computeroutput"><span class="identifier">make_policy</span></code> is a helper function
+        that converts a list of policies into a normalised <code class="computeroutput"><span class="identifier">policy</span></code>
+        class.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A1</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A2</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A3</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A4</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A5</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A6</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A7</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A8</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A9</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A10</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A11</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A12</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
+          <span class="keyword">class</span> <span class="identifier">A13</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">normalise</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> computed-from-template-arguments <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        The <code class="computeroutput"><span class="identifier">normalise</span></code> class template
+        converts one instantiation of the <code class="computeroutput"><span class="identifier">policy</span></code>
+        class into a normalised form. This is used internally to reduce code bloat:
+        so that instantiating a special function on <code class="computeroutput"><span class="identifier">policy</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">></span></code> or
+        <code class="computeroutput"><span class="identifier">policy</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">A</span><span class="special">></span></code> actually both generate the same code
+        internally.
+      </p>
+<p>
+        Further more, <code class="computeroutput"><span class="identifier">normalise</span></code> can
+        be used to combine a policy with one or more policies: for example many of
+        the special functions will use this to set policies which they don't make
+        use of to their default values, before forwarding to the actual implementation.
+        In this way code bloat is reduced, since the actual implementation depends
+        only on the policy types that they actually use.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="namespace_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../../perf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/policy_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/policy_defaults.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,248 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using Macros to Change the Policy Defaults</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="iteration_pol.html" title="Iteration Limits Policies">
+<link rel="next" href="namespace_pol.html" title="Setting Polices at Namespace Scope">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="iteration_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="namespace_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_policy_defaults">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.policy_defaults"></a><a class="link" href="policy_defaults.html" title="Using Macros to Change the Policy Defaults">Using Macros to
+      Change the Policy Defaults</a>
+</h3></div></div></div>
+<p>
+        You can use the various macros below to change any (or all) of the policies.
+      </p>
+<p>
+        You can make a local change by placing a macro definition <span class="bold"><strong>before</strong></span>
+        a function or distribution #include.
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          There is a danger of One-Definition-Rule violations if you add ad-hoc macros
+          to more than one source files: these must be set the same in <span class="bold"><strong>every translation unit</strong></span>.
+        </p></td></tr>
+</table></div>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          If you place it after the #include it will have no effect, (and it will
+          affect only any other following #includes). This is probably not what you
+          intend!
+        </p></td></tr>
+</table></div>
+<p>
+        If you want to alter the defaults for any or all of the policies for <span class="bold"><strong>all</strong></span> functions and distributions, installation-wide,
+        then you can do so by defining various macros in boost/math/tools/user.hpp.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h0"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_domain_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_domain_error_policy">BOOST_MATH_DOMAIN_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when a domain error occurs, if not defined then defaults
+        to <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, but can
+        be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h1"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_pole_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_pole_error_policy">BOOST_MATH_POLE_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when a pole error occurs, if not defined then defaults
+        to <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, but can
+        be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h2"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_overflow_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_overflow_error_policy">BOOST_MATH_OVERFLOW_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when an overflow error occurs, if not defined then defaults
+        to <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, but can
+        be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h3"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_rounding_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_rounding_error_policy">BOOST_MATH_ROUNDING_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when a rounding error occurs, if not defined then defaults
+        to <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, but can
+        be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h4"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_evaluation_error_poli"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_evaluation_error_poli">BOOST_MATH_EVALUATION_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when an internal evaluation error occurs, if not defined
+        then defaults to <code class="computeroutput"><span class="identifier">throw_on_error</span></code>,
+        but can be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h5"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_underflow_error_polic"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_underflow_error_polic">BOOST_MATH_UNDERFLOW_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when an overflow error occurs, if not defined then defaults
+        to <code class="computeroutput"><span class="identifier">ignore_error</span></code>, but can
+        be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h6"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_denorm_error_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_denorm_error_policy">BOOST_MATH_DENORM_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when a denormalisation error occurs, if not defined
+        then defaults to <code class="computeroutput"><span class="identifier">ignore_error</span></code>,
+        but can be set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>, <code class="computeroutput"><span class="identifier">errno_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h7"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_indeterminate_result_"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_indeterminate_result_">BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY</a>
+      </h6>
+<p>
+        Defines what happens when the result is indeterminate, but where there is
+        none the less a convention for the result. If not defined then defaults to
+        <code class="computeroutput"><span class="identifier">ignore_error</span></code>, but can be
+        set to any of the enumerated actions for error handing: <code class="computeroutput"><span class="identifier">throw_on_error</span></code>,
+        <code class="computeroutput"><span class="identifier">errno_on_error</span></code>, <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h8"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_digits10_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_digits10_policy">BOOST_MATH_DIGITS10_POLICY</a>
+      </h6>
+<p>
+        Defines how many decimal digits to use in internal computations: defaults
+        to <code class="computeroutput"><span class="number">0</span></code> - meaning use all available
+        digits - but can be set to some other decimal value. Since setting this is
+        likely to have a substantial impact on accuracy, it's not generally recommended
+        that you change this from the default.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h9"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_promote_float_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_promote_float_policy">BOOST_MATH_PROMOTE_FLOAT_POLICY</a>
+      </h6>
+<p>
+        Determines whether <code class="computeroutput"><span class="keyword">float</span></code> types
+        get promoted to <code class="computeroutput"><span class="keyword">double</span></code> internally
+        to ensure maximum precision in the result, defaults to <code class="computeroutput"><span class="keyword">true</span></code>,
+        but can be set to <code class="computeroutput"><span class="keyword">false</span></code> to turn
+        promotion of <code class="computeroutput"><span class="keyword">float</span></code>'s off.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h10"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_promote_double_policy"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_promote_double_policy">BOOST_MATH_PROMOTE_DOUBLE_POLICY</a>
+      </h6>
+<p>
+        Determines whether <code class="computeroutput"><span class="keyword">double</span></code> types
+        get promoted to <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+        internally to ensure maximum precision in the result, defaults to <code class="computeroutput"><span class="keyword">true</span></code>, but can be set to <code class="computeroutput"><span class="keyword">false</span></code>
+        to turn promotion of <code class="computeroutput"><span class="keyword">double</span></code>'s
+        off.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h11"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_discrete_quantile_pol"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_discrete_quantile_pol">BOOST_MATH_DISCRETE_QUANTILE_POLICY</a>
+      </h6>
+<p>
+        Determines how discrete quantiles return their results: either as an integer,
+        or as a real value, can be set to one of the enumerated values: <code class="computeroutput"><span class="identifier">real</span></code>, <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>,
+        <code class="computeroutput"><span class="identifier">integer_round_inwards</span></code>, <code class="computeroutput"><span class="identifier">integer_round_down</span></code>, <code class="computeroutput"><span class="identifier">integer_round_up</span></code>,
+        <code class="computeroutput"><span class="identifier">integer_round_nearest</span></code>. Defaults
+        to <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h12"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_assert_undefined_poli"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_assert_undefined_poli">BOOST_MATH_ASSERT_UNDEFINED_POLICY</a>
+      </h6>
+<p>
+        Determines whether functions that are mathematically undefined for a specific
+        distribution compile or raise a static (i.e. compile-time) assertion. Defaults
+        to <code class="computeroutput"><span class="keyword">true</span></code>: meaning that any mathematically
+        undefined function will not compile. When set to <code class="computeroutput"><span class="keyword">false</span></code>
+        then the function will compile but return the result of a domain error: this
+        can be useful for some generic code, that needs to work with all distributions
+        and determine at runtime whether or not a particular property is well defined.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h13"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_max_series_iteration_"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_max_series_iteration_">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</a>
+      </h6>
+<p>
+        Determines how many series iterations a special function is permitted to
+        perform before it gives up and returns an <a class="link" href="../error_handling.html#math_toolkit.error_handling.evaluation_error">evaluation_error</a>:
+        Defaults to 1000000.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h14"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.boost_math_max_root_iteration_po"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.boost_math_max_root_iteration_po">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</a>
+      </h6>
+<p>
+        Determines how many root-finding iterations a special function is permitted
+        to perform before it gives up and returns an <a class="link" href="../error_handling.html#math_toolkit.error_handling.evaluation_error">evaluation_error</a>:
+        Defaults to 200.
+      </p>
+<h6>
+<a name="math_toolkit.pol_ref.policy_defaults.h15"></a>
+        <span class="phrase"><a name="math_toolkit.pol_ref.policy_defaults.example"></a></span><a class="link" href="policy_defaults.html#math_toolkit.pol_ref.policy_defaults.example">Example</a>
+      </h6>
+<p>
+        Suppose we want overflow errors to set <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code> and return an infinity, discrete
+        quantiles to return a real-valued result (rather than round to integer),
+        and for mathematically undefined functions to compile, but return a domain
+        error. Then we could add the following to boost/math/tools/user.hpp:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
+</pre>
+<p>
+        or we could place these definitions <span class="bold"><strong>before</strong></span>
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">;</span>
+</pre>
+<p>
+        in a source .cpp file.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="iteration_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="namespace_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/precision_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_ref/precision_pol.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,100 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Precision Policies</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_ref.html" title="Policy Reference">
+<link rel="prev" href="discrete_quant_ref.html" title="Discrete Quantile Policies">
+<link rel="next" href="iteration_pol.html" title="Iteration Limits Policies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="discrete_quant_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="iteration_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_ref_precision_pol">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_ref.precision_pol"></a><a class="link" href="precision_pol.html" title="Precision Policies">Precision Policies</a>
+</h3></div></div></div>
+<p>
+        There are two equivalent policies that effect the <span class="emphasis"><em>working precision</em></span>
+        used to calculate results, these policies both default to 0 - meaning calculate
+        to the maximum precision available in the type being used - but can be set
+        to other values to cause lower levels of precision to be used. One might
+        want to trade precision for evaluation speed.
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span>
+<span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span>
+<span class="identifier">digits2</span><span class="special">;</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        As you would expect, <span class="emphasis"><em>digits10</em></span> specifies the number of
+        decimal digits to use, and <span class="emphasis"><em>digits2</em></span> the number of binary
+        digits. Internally, whichever is used, the precision is always converted
+        to <span class="emphasis"><em>binary digits</em></span>.
+      </p>
+<p>
+        These policies are specified at compile-time, because many of the special
+        functions use compile-time-dispatch to select which approximation to use
+        based on the precision requested and the numeric type being used.
+      </p>
+<p>
+        For example we could calculate <code class="computeroutput"><span class="identifier">tgamma</span></code>
+        to approximately 5 decimal digits using:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">digits10</span><span class="special"><</span><span class="number">5</span><span class="special">></span> <span class="special">></span> <span class="identifier">my_pol_5</span><span class="special">;</span> <span class="comment">// Define a new, non-default, policy</span>
+<span class="comment">// to calculate tgamma to accuracy of approximately 5 decimal digits.</span>
+</pre>
+<p>
+        Or again using helper function <code class="computeroutput"><span class="identifier">make_policy</span></code>:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">12</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">digits10</span><span class="special"><</span><span class="number">5</span><span class="special">></span> <span class="special">>());</span>  <span class="comment">// Concise make_policy.</span>
+</pre>
+<p>
+        And for a quantile of a distribution to approximately 25-bit precision:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">bits</span> <span class="special">=</span> <span class="number">25</span><span class="special">;</span> <span class="comment">// approximate precision.</span>
+
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span>
+      <span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">digits2</span><span class="special"><</span><span class="identifier">bits</span><span class="special">></span> <span class="special">></span> <span class="special">>(),</span>
+      <span class="number">0.05</span><span class="special">);</span> <span class="comment">// 5% quantile.</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="discrete_quant_ref.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="iteration_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policy Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../policy.html" title="Chapter 13. Policies">
+<link rel="prev" href="pol_overview0.html" title="Policy Overview">
+<link rel="next" href="pol_tutorial/what_is_a_policy.html" title="So Just What is a Policy Anyway?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="pol_overview0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial/what_is_a_policy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.pol_tutorial"></a><a class="link" href="pol_tutorial.html" title="Policy Tutorial">Policy Tutorial</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="pol_tutorial/what_is_a_policy.html">So Just What
+      is a Policy Anyway?</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/policy_tut_defaults.html">Policies
+      Have Sensible Defaults</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/policy_usage.html">So How are Policies
+      Used Anyway?</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/changing_policy_defaults.html">Changing
+      the Policy Defaults</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/ad_hoc_dist_policies.html">Setting
+      Policies for Distributions on an Ad Hoc Basis</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/ad_hoc_sf_policies.html">Changing
+      the Policy on an Ad Hoc Basis for the Special Functions</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/namespace_policies.html">Setting
+      Policies at Namespace or Translation Unit Scope</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/user_def_err_pol.html">Calling User
+      Defined Error Handlers</a></span></dt>
+<dt><span class="section"><a href="pol_tutorial/understand_dis_quant.html">Understanding
+      Quantiles of Discrete Distributions</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="pol_overview0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial/what_is_a_policy.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_dist_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_dist_policies.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Setting Policies for Distributions on an Ad Hoc Basis</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="changing_policy_defaults.html" title="Changing the Policy Defaults">
+<link rel="next" href="ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="changing_policy_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_sf_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_ad_hoc_dist_policies">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.ad_hoc_dist_policies"></a><a class="link" href="ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">Setting
+      Policies for Distributions on an Ad Hoc Basis</a>
+</h3></div></div></div>
+<p>
+        All of the statistical distributions in this library are class templates
+        that accept two template parameters: real type (float, double ...) and policy
+        (how to handle exceptional events), both with sensible defaults, for example:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span> <span class="special">=</span> <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">fisher_f_distribution</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">fisher_f_distribution</span><span class="special"><></span> <span class="identifier">fisher_f</span><span class="special">;</span>
+
+<span class="special">}}</span>
+</pre>
+<p>
+        This policy gets used by all the accessor functions that accept a distribution
+        as an argument, and forwarded to all the functions called by these. So if
+        you use the shorthand-typedef for the distribution, then you get <code class="computeroutput"><span class="keyword">double</span></code> precision arithmetic and all the default
+        policies.
+      </p>
+<p>
+        However, say for example we wanted to evaluate the quantile of the binomial
+        distribution at float precision, without internal promotion to double, and
+        with the result rounded to the <span class="emphasis"><em>nearest</em></span> integer, then
+        here's how it can be done:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
+
+<span class="comment">// Begin by defining a policy type, that gives the behaviour we want:</span>
+
+<span class="comment">//using namespace boost::math::policies; or explicitly</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">discrete_quantile</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_nearest</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+   <span class="identifier">promote_float</span><span class="special"><</span><span class="keyword">false</span><span class="special">>,</span> <span class="comment">// Do not promote to double.</span>
+   <span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_nearest</span><span class="special">></span> <span class="comment">// Round result to nearest integer.</span>
+<span class="special">></span> <span class="identifier">mypolicy</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// Then define a new distribution that uses it:</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">></span> <span class="identifier">mybinom</span><span class="special">;</span>
+
+<span class="comment">//  And now use it to get the quantile:</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"quantile(mybinom(200, 0.25), 0.05) is: "</span> <span class="special"><<</span>
+      <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">mybinom</span><span class="special">(</span><span class="number">200</span><span class="special">,</span> <span class="number">0.25</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which outputs:
+      </p>
+<pre class="programlisting">quantile is: 40</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="changing_policy_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_sf_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_sf_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/ad_hoc_sf_policies.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,164 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Changing the Policy on an Ad Hoc Basis for the Special Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">
+<link rel="next" href="namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ad_hoc_dist_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="namespace_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_ad_hoc_sf_policies">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.ad_hoc_sf_policies"></a><a class="link" href="ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">Changing
+      the Policy on an Ad Hoc Basis for the Special Functions</a>
+</h3></div></div></div>
+<p>
+        All of the special functions in this library come in two overloaded forms,
+        one with a final "policy" parameter, and one without. For example:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="identifier">RealType</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RealType</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Normally, the second version is just a forwarding wrapper to the first like
+        this:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">RealType</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">return</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><>());</span>
+<span class="special">}</span>
+</pre>
+<p>
+        So calling a special function with a specific policy is just a matter of
+        defining the policy type to use and passing it as the final parameter. For
+        example, suppose we want <code class="computeroutput"><span class="identifier">tgamma</span></code>
+        to behave in a C-compatible fashion and set <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code> when an error occurs, and never throw
+        an exception:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="comment">// Define the policy to use:</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span> <span class="comment">// may be convenient, or</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="comment">// Types of error whose action can be altered by policies:.</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">;</span>
+<span class="comment">// Actions on error (in enum error_policy_type):</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">errno_on_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">throw_on_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_error</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+   <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">c_policy</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// Now use the policy when calling tgamma:</span>
+
+<span class="comment">// http://msdn.microsoft.com/en-us/library/t3ayayh1.aspx </span>
+<span class="comment">// Microsoft errno declared in STDLIB.H as "extern int errno;" </span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// Reset.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(30000) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">30000</span><span class="special">,</span> <span class="identifier">c_policy</span><span class="special">())</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Too big parameter</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// errno 34 Numerical result out of range.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">,</span> <span class="identifier">c_policy</span><span class="special">())</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Negative parameter.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// error 33 Numerical argument out of domain.</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+        which outputs:
+      </p>
+<pre class="programlisting">Result of tgamma(30000) is: 1.#INF
+errno = 34
+Result of tgamma(-10) is: 1.#QNAN
+errno = 33
+</pre>
+<p>
+        Alternatively, for ad hoc use, we can use the <code class="computeroutput"><span class="identifier">make_policy</span></code>
+        helper function to create a policy for us: this usage is more verbose, so
+        is probably only preferred when a policy is going to be used once only:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="comment">// using namespace boost::math::policies; // or</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">errno_on_error</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">make_policy</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">;</span>
+
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(30000) is: "</span>
+      <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span>
+         <span class="number">30000</span><span class="special">,</span>
+         <span class="identifier">make_policy</span><span class="special">(</span>
+            <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>()</span>
+         <span class="special">)</span>
+      <span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Check errno was set:</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// and again with evaluation at a pole:</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span>
+         <span class="special">-</span><span class="number">10</span><span class="special">,</span>
+         <span class="identifier">make_policy</span><span class="special">(</span>
+            <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>(),</span>
+            <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>()</span>
+         <span class="special">)</span>
+      <span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Check errno was set:</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ad_hoc_dist_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="namespace_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/changing_policy_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/changing_policy_defaults.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,125 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Changing the Policy Defaults</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="policy_usage.html" title="So How are Policies Used Anyway?">
+<link rel="next" href="ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="policy_usage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_dist_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_changing_policy_defaults">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.changing_policy_defaults"></a><a class="link" href="changing_policy_defaults.html" title="Changing the Policy Defaults">Changing
+      the Policy Defaults</a>
+</h3></div></div></div>
+<p>
+        The default policies used by the library are changed by the usual configuration
+        macro method.
+      </p>
+<p>
+        For example, passing <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_MATH_DOMAIN_ERROR_POLICY</span><span class="special">=</span><span class="identifier">errno_on_error</span></code>
+        to your compiler will cause domain errors to set <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code> and return a NaN
+        rather than the usual default behaviour of throwing a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+        exception.
+      </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          For Microsoft Visual Studio,you can add to the Project Property Page, C/C++,
+          Preprocessor, Preprocessor definitions like:
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span><span class="special">=</span><span class="number">0</span>
+<span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span><span class="special">=</span><span class="identifier">errno_on_error</span></pre>
+<p>
+          This may be helpful to avoid complications with pre-compiled headers that
+          may mean that the equivalent definitions in source code:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">errno_on_error</span></pre>
+<p>
+          <span class="bold"><strong>may be ignored</strong></span>.
+        </p>
+<p>
+          The compiler command line shows:
+        </p>
+<pre class="programlisting"><span class="special">/</span><span class="identifier">D</span> <span class="string">"BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"</span>
+<span class="special">/</span><span class="identifier">D</span> <span class="string">"BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error"</span></pre>
+</td></tr>
+</table></div>
+<p>
+        There is however a very important caveat to this:
+      </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          <span class="bold"><strong><span class="emphasis"><em>Default policies changed by setting configuration
+          macros must be changed uniformly in every translation unit in the program.</em></span></strong></span>
+        </p>
+<p>
+          Failure to follow this rule may result in violations of the "One Definition
+          Rule (ODR)" and result in unpredictable program behaviour.
+        </p>
+</td></tr>
+</table></div>
+<p>
+        That means there are only two safe ways to use these macros:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Edit them in boost/math/tools/user.hpp,
+            so that the defaults are set on an installation-wide basis. Unfortunately
+            this may not be convenient if you are using a pre-installed Boost distribution
+            (on Linux for example).
+          </li>
+<li class="listitem">
+            Set the defines in your project's Makefile or build environment, so that
+            they are set uniformly across all translation units.
+          </li>
+</ul></div>
+<p>
+        What you should <span class="bold"><strong>not</strong></span> do is:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+            Set the defines in the source file using <code class="computeroutput"><span class="preprocessor">#define</span></code>
+            as doing so almost certainly will break your program, unless you're absolutely
+            certain that the program is restricted to a single translation unit.
+          </li></ul></div>
+<p>
+        And, yes, you will find examples in our test programs where we break this
+        rule: but only because we know there will always be a single translation
+        unit only: <span class="emphasis"><em>don't say that you weren't warned!</em></span>
+      </p>
+<p>
+        [error_handling_example]
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="policy_usage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_dist_policies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/namespace_policies.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/namespace_policies.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,356 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Setting Policies at Namespace or Translation Unit Scope</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">
+<link rel="next" href="user_def_err_pol.html" title="Calling User Defined Error Handlers">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ad_hoc_sf_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="user_def_err_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_namespace_policies">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.namespace_policies"></a><a class="link" href="namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope">Setting
+      Policies at Namespace or Translation Unit Scope</a>
+</h3></div></div></div>
+<p>
+        Sometimes what you want to do is just change a set of policies within the
+        current scope: <span class="bold"><strong>the one thing you should not do in this
+        situation is use the configuration macros</strong></span>, as this can lead to
+        "One Definition Rule" violations. Instead this library provides
+        a pair of macros especially for this purpose.
+      </p>
+<p>
+        Let's consider the special functions first: we can declare a set of forwarding
+        functions that all use a specific policy using the macro BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(<span class="emphasis"><em>Policy</em></span>).
+        This macro should be used either inside a unique namespace set aside for
+        the purpose (for example, a C namespace for a C-style policy), or an unnamed
+        namespace if you just want the functions visible in global scope for the
+        current file only.
+      </p>
+<p>
+        Suppose we want <code class="computeroutput"><span class="identifier">C</span><span class="special">::</span><span class="identifier">foo</span><span class="special">()</span></code> to
+        behave in a C-compatible way and set <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code> on error rather than throwing any
+        exceptions.
+      </p>
+<p>
+        We'll begin by including the needed header for our function:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">//using boost::math::tgamma; // Not needed because using C::tgamma.</span>
+</pre>
+<p>
+        Open up the "C" namespace that we'll use for our functions, and
+        define the policy type we want: in this case a C-style one that sets ::errno
+        and returns a standard value, rather than throwing exceptions.
+      </p>
+<p>
+        Any policies we don't specify here will inherit the defaults.
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">C</span>
+<span class="special">{</span> <span class="comment">// To hold our C-style policy.</span>
+  <span class="comment">//using namespace boost::math::policies; or explicitly:</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">errno_on_error</span><span class="special">;</span>
+
+  <span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+     <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+     <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+     <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+     <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">></span>
+  <span class="special">></span> <span class="identifier">c_policy</span><span class="special">;</span>
+</pre>
+<p>
+        All we need do now is invoke the BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS macro
+        passing our policy type c_policy as the single argument:
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">c_policy</span><span class="special">)</span>
+
+<span class="special">}</span> <span class="comment">// close namespace C</span>
+</pre>
+<p>
+        We now have a set of forwarding functions defined in namespace C that all
+        look something like this:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special"><</span><span class="identifier">RT</span><span class="special">>::</span><span class="identifier">type</span>
+   <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">c_policy</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+        So that when we call <code class="computeroutput"><span class="identifier">C</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span></code>, we
+        really end up calling <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span>
+        <span class="identifier">C</span><span class="special">::</span><span class="identifier">c_policy</span><span class="special">())</span></code>:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(30000) is: "</span>
+      <span class="special"><<</span> <span class="identifier">C</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="number">30000</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Note using C::tgamma</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// errno = 34</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">C</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// errno = 33, overwriting previous value of 34.</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which outputs:
+      </p>
+<pre class="programlisting">Result of C::tgamma(30000) is: 1.#INF
+errno = 34
+Result of C::tgamma(-10) is: 1.#QNAN
+errno = 33
+</pre>
+<p>
+        This mechanism is particularly useful when we want to define a project-wide
+        policy, and don't want to modify the Boost source, or to set project wide
+        build macros (possibly fragile and easy to forget).
+      </p>
+<p>
+        The same mechanism works well at file scope as well, by using an unnamed
+        namespace, we can ensure that these declarations don't conflict with any
+        alternate policies present in other translation units:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="comment">// using boost::math::tgamma; // Would create an ambiguity between</span>
+<span class="comment">// 'double boost::math::tgamma<int>(T)' and</span>
+<span class="comment">// 'double 'anonymous-namespace'::tgamma<int>(RT)'.</span>
+
+<span class="keyword">namespace</span>
+<span class="special">{</span> <span class="comment">// unnamed</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+   <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+   <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">c_policy</span><span class="special">;</span>
+
+<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">c_policy</span><span class="special">)</span>
+</pre>
+<p>
+        So that when we call <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span></code>,
+        we really end up calling <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span>
+        <span class="identifier">anonymous</span><span class="special">-</span><span class="keyword">namespace</span><span class="special">::</span><span class="identifier">c_policy</span><span class="special">())</span></code>.
+      </p>
+<pre class="programlisting"><span class="special">}</span> <span class="comment">// close unnamed namespace</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(30000) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">30000</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+      <span class="comment">// tgamma in unnamed namespace in this translation unit (file) only.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Default tgamma policy would throw an exception, and abort.</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Handling policies for the statistical distributions is very similar except
+        that now the macro BOOST_MATH_DECLARE_DISTRIBUTIONS accepts two parameters:
+        the floating point type to use, and the policy type to apply. For example:
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">)</span>
+</pre>
+<p>
+        Results a set of typedefs being defined like this:
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">></span> <span class="identifier">normal</span><span class="special">;</span>
+</pre>
+<p>
+        The name of each typedef is the same as the name of the distribution class
+        template, but without the "_distribution" suffix.
+      </p>
+<p>
+        Suppose we want a set of distributions to behave as follows:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Return infinity on overflow, rather than throwing an exception.
+          </li>
+<li class="listitem">
+            Don't perform any promotion from double to long double internally.
+          </li>
+<li class="listitem">
+            Return the closest integer result from the quantiles of discrete distributions.
+          </li>
+</ul></div>
+<p>
+        We'll begin by including the needed header for all the distributions:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        Open up an appropriate namespace, calling it <code class="computeroutput"><span class="identifier">my_distributions</span></code>,
+        for our distributions, and define the policy type we want. Any policies we
+        don't specify here will inherit the defaults:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">my_distributions</span>
+<span class="special">{</span>
+  <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+  <span class="comment">// using boost::math::policies::errno_on_error; // etc.</span>
+
+  <span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+     <span class="comment">// return infinity and set errno rather than throw:</span>
+     <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+     <span class="comment">// Don't promote double -> long double internally:</span>
+     <span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">>,</span>
+     <span class="comment">// Return the closest integer result for discrete quantiles:</span>
+     <span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_nearest</span><span class="special">></span>
+  <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+</pre>
+<p>
+        All we need do now is invoke the BOOST_MATH_DECLARE_DISTRIBUTIONS macro passing
+        the floating point type <code class="computeroutput"><span class="keyword">double</span></code>
+        and policy types <code class="computeroutput"><span class="identifier">my_policy</span></code>
+        as arguments:
+      </p>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">)</span>
+
+<span class="special">}</span> <span class="comment">// close namespace my_namespace</span>
+</pre>
+<p>
+        We now have a set of typedefs defined in namespace my_distributions that
+        all look something like this:
+      </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">normal</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">cauchy</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span> <span class="identifier">gamma</span><span class="special">;</span>
+<span class="comment">// etc</span>
+</pre>
+<p>
+        So that when we use my_distributions::normal we really end up using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">></span></code>:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="comment">// Construct distribution with something we know will overflow</span>
+  <span class="comment">// (using double rather than if promoted to long double):</span>
+   <span class="identifier">my_distributions</span><span class="special">::</span><span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
+
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(norm, 0) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -infinity.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(norm, 1) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// +infinity.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Now try a discrete distribution.</span>
+   <span class="identifier">my_distributions</span><span class="special">::</span><span class="identifier">binomial</span> <span class="identifier">binom</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(binom, 0.05) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom</span><span class="special">,</span> <span class="number">0.05</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// To check we get integer results.</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(complement(binom, 0.05)) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">binom</span><span class="special">,</span> <span class="number">0.05</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which outputs:
+      </p>
+<pre class="programlisting">Result of quantile(norm, 0) is: -1.#INF
+errno = 34
+Result of quantile(norm, 1) is: 1.#INF
+errno = 34
+Result of quantile(binom, 0.05) is: 1
+Result of quantile(complement(binom, 0.05)) is: 8
+</pre>
+<p>
+        This mechanism is particularly useful when we want to define a project-wide
+        policy, and don't want to modify the Boost source or set project wide build
+        macros (possibly fragile and easy to forget).
+      </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          There is an important limitation to note: you can *not use the macros BOOST_MATH_DECLARE_DISTRIBUTIONS
+          and BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS <span class="emphasis"><em>in the same namespace</em></span>*,
+          as doing so creates ambiguities between functions and distributions of
+          the same name.
+        </p></td></tr>
+</table></div>
+<p>
+        As before, the same mechanism works well at file scope as well: by using
+        an unnamed namespace, we can ensure that these declarations don't conflict
+        with any alternate policies present in other translation units:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// All distributions.</span>
+<span class="comment">// using boost::math::normal; // Would create an ambguity between</span>
+<span class="comment">// boost::math::normal_distribution<RealType> boost::math::normal and</span>
+<span class="comment">// 'anonymous-namespace'::normal'.</span>
+
+<span class="keyword">namespace</span>
+<span class="special">{</span> <span class="comment">// anonymous or unnnamed (rather than named as in policy_eg_6.cpp).</span>
+
+  <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+   <span class="comment">// using boost::math::policies::errno_on_error; // etc.</span>
+  <span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+     <span class="comment">// return infinity and set errno rather than throw:</span>
+     <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span>
+     <span class="comment">// Don't promote double -> long double internally:</span>
+     <span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">>,</span>
+     <span class="comment">// Return the closest integer result for discrete quantiles:</span>
+     <span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_nearest</span><span class="special">></span>
+  <span class="special">></span> <span class="identifier">my_policy</span><span class="special">;</span>
+
+  <span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">)</span>
+
+<span class="special">}</span> <span class="comment">// close namespace my_namespace</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="comment">// Construct distribution with something we know will overflow.</span>
+   <span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span> <span class="comment">// using 'anonymous-namespace'::normal</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(norm, 0) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(norm, 1) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno = "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">//</span>
+   <span class="comment">// Now try a discrete distribution:</span>
+   <span class="identifier">binomial</span> <span class="identifier">binom</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(binom, 0.05) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom</span><span class="special">,</span> <span class="number">0.05</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of quantile(complement(binom, 0.05)) is: "</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">binom</span><span class="special">,</span> <span class="number">0.05</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ad_hoc_sf_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="user_def_err_pol.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_tut_defaults.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_tut_defaults.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,131 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Policies Have Sensible Defaults</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="what_is_a_policy.html" title="So Just What is a Policy Anyway?">
+<link rel="next" href="policy_usage.html" title="So How are Policies Used Anyway?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="what_is_a_policy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_usage.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_policy_tut_defaults">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.policy_tut_defaults"></a><a class="link" href="policy_tut_defaults.html" title="Policies Have Sensible Defaults">Policies
+      Have Sensible Defaults</a>
+</h3></div></div></div>
+<p>
+        Most of the time you can just ignore the policy framework.
+      </p>
+<p>
+        <span class="emphasis"><em>*The defaults for the various policies are as follows, if these
+        work OK for you then you can stop reading now!</em></span>
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">Domain Error</span></dt>
+<dd><p>
+              Throws a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code> exception.
+            </p></dd>
+<dt><span class="term">Pole Error</span></dt>
+<dd><p>
+              Occurs when a function is evaluated at a pole: throws a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code> exception.
+            </p></dd>
+<dt><span class="term">Overflow Error</span></dt>
+<dd><p>
+              Throws a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code> exception.
+            </p></dd>
+<dt><span class="term">Underflow</span></dt>
+<dd><p>
+              Ignores the underflow, and returns zero.
+            </p></dd>
+<dt><span class="term">Denormalised Result</span></dt>
+<dd><p>
+              Ignores the fact that the result is denormalised, and returns it.
+            </p></dd>
+<dt><span class="term">Rounding Error</span></dt>
+<dd><p>
+              Throws a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">rounding_error</span></code> exception.
+            </p></dd>
+<dt><span class="term">Internal Evaluation Error</span></dt>
+<dd><p>
+              Throws a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">evaluation_error</span></code> exception.
+            </p></dd>
+<dt><span class="term">Indeterminate Result Error</span></dt>
+<dd><p>
+              Returns a result that depends on the function where the error occurred.
+            </p></dd>
+<dt><span class="term">Promotion of float to double</span></dt>
+<dd><p>
+              Does occur by default - gives full float precision results.
+            </p></dd>
+<dt><span class="term">Promotion of double to long double</span></dt>
+<dd><p>
+              Does occur by default if long double offers more precision than double.
+            </p></dd>
+<dt><span class="term">Precision of Approximation Used</span></dt>
+<dd><p>
+              By default uses an approximation that will result in the lowest level
+              of error for the type of the result.
+            </p></dd>
+<dt><span class="term">Behaviour of Discrete Quantiles</span></dt>
+<dd>
+<p>
+              The quantile function will by default return an integer result that
+              has been <span class="emphasis"><em>rounded outwards</em></span>. That is to say lower
+              quantiles (where the probability is less than 0.5) are rounded downward,
+              and upper quantiles (where the probability is greater than 0.5) are
+              rounded upwards. This behaviour ensures that if an X% quantile is requested,
+              then <span class="emphasis"><em>at least</em></span> the requested coverage will be present
+              in the central region, and <span class="emphasis"><em>no more than</em></span> the requested
+              coverage will be present in the tails.
+            </p>
+<p>
+              This behaviour can be changed so that the quantile functions are rounded
+              differently, or even return a real-valued result using <a class="link" href="../pol_overview.html" title="Policies">Policies</a>.
+              It is strongly recommended that you read the tutorial <a class="link" href="understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+              Quantiles of Discrete Distributions</a> before using the quantile
+              function on a discrete distribution. The <a class="link" href="../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+              docs</a> describe how to change the rounding policy for these distributions.
+            </p>
+</dd>
+</dl>
+</div>
+<p>
+        What's more, if you define your own policy type, then it automatically inherits
+        the defaults for any policies not explicitly set, so given:
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// Define a policy that sets ::errno on overflow, and does</span>
+<span class="comment">// not promote double to long double internally:</span>
+<span class="comment">//</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span> <span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="identifier">mypolicy</span><span class="special">;</span>
+</pre>
+<p>
+        then <code class="computeroutput"><span class="identifier">mypolicy</span></code> defines a policy
+        where only the overflow error handling and <code class="computeroutput"><span class="keyword">double</span></code>-promotion
+        policies differ from the defaults.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="what_is_a_policy.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_usage.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_usage.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/policy_usage.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>So How are Policies Used Anyway?</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="policy_tut_defaults.html" title="Policies Have Sensible Defaults">
+<link rel="next" href="changing_policy_defaults.html" title="Changing the Policy Defaults">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="policy_tut_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="changing_policy_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_policy_usage">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.policy_usage"></a><a class="link" href="policy_usage.html" title="So How are Policies Used Anyway?">So How are Policies
+      Used Anyway?</a>
+</h3></div></div></div>
+<p>
+        The details follow later, but basically policies can be set by either:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Defining some macros that change the default behaviour: <span class="bold"><strong>this
+            is the recommended method for setting installation-wide policies</strong></span>.
+          </li>
+<li class="listitem">
+            By instantiating a distribution object with an explicit policy: this
+            is mainly reserved for ad hoc policy changes.
+          </li>
+<li class="listitem">
+            By passing a policy to a special function as an optional final argument:
+            this is mainly reserved for ad hoc policy changes.
+          </li>
+<li class="listitem">
+            By using some helper macros to define a set of functions or distributions
+            in the current namespace that use a specific policy: <span class="bold"><strong>this
+            is the recommended method for setting policies on a project- or translation-unit-wide
+            basis</strong></span>.
+          </li>
+</ul></div>
+<p>
+        The following sections introduce these methods in more detail.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="policy_tut_defaults.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="changing_policy_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/understand_dis_quant.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/understand_dis_quant.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,407 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Understanding Quantiles of Discrete Distributions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="user_def_err_pol.html" title="Calling User Defined Error Handlers">
+<link rel="next" href="../pol_ref.html" title="Policy Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="user_def_err_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../pol_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_understand_dis_quant">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.understand_dis_quant"></a><a class="link" href="understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+      Quantiles of Discrete Distributions</a>
+</h3></div></div></div>
+<p>
+        Discrete distributions present us with a problem when calculating the quantile:
+        we are starting from a continuous real-valued variable - the probability
+        - but the result (the value of the random variable) should really be discrete.
+      </p>
+<p>
+        Consider for example a Binomial distribution, with a sample size of 50, and
+        a success fraction of 0.5. There are a variety of ways we can plot a discrete
+        distribution, but if we plot the PDF as a step-function then it looks something
+        like this:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/binomial_pdf.png"></span>
+      </p>
+<p>
+        Now lets suppose that the user asks for a the quantile that corresponds to
+        a probability of 0.05, if we zoom in on the CDF for that region here's what
+        we see:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/binomial_quantile_1.png"></span>
+      </p>
+<p>
+        As can be seen there is no random variable that corresponds to a probability
+        of exactly 0.05, so we're left with two choices as shown in the figure:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            We could round the result down to 18.
+          </li>
+<li class="listitem">
+            We could round the result up to 19.
+          </li>
+</ul></div>
+<p>
+        In fact there's actually a third choice as well: we could "pretend"
+        that the distribution was continuous and return a real valued result: in
+        this case we would calculate a result of approximately 18.701 (this accurately
+        reflects the fact that the result is nearer to 19 than 18).
+      </p>
+<p>
+        By using policies we can offer any of the above as options, but that still
+        leaves the question: <span class="emphasis"><em>What is actually the right thing to do?</em></span>
+      </p>
+<p>
+        And in particular: <span class="emphasis"><em>What policy should we use by default?</em></span>
+      </p>
+<p>
+        In coming to an answer we should realise that:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Calculating an integer result is often much faster than calculating a
+            real-valued result: in fact in our tests it was up to 20 times faster.
+          </li>
+<li class="listitem">
+            Normally people calculate quantiles so that they can perform a test of
+            some kind: <span class="emphasis"><em>"If the random variable is less than N then
+            we can reject our null-hypothesis with 90% confidence."</em></span>
+          </li>
+</ul></div>
+<p>
+        So there is a genuine benefit to calculating an integer result as well as
+        it being "the right thing to do" from a philosophical point of
+        view. What's more if someone asks for a quantile at 0.05, then we can normally
+        assume that they are asking for <span class="emphasis"><em><span class="bold"><strong>at least</strong></span>
+        95% of the probability to the right of the value chosen, and <span class="bold"><strong>no
+        more than</strong></span> 5% of the probability to the left of the value chosen.</em></span>
+      </p>
+<p>
+        In the above binomial example we would therefore round the result down to
+        18.
+      </p>
+<p>
+        The converse applies to upper-quantiles: If the probability is greater than
+        0.5 we would want to round the quantile up, <span class="emphasis"><em>so that <span class="bold"><strong>at
+        least</strong></span> the requested probability is to the left of the value returned,
+        and <span class="bold"><strong>no more than</strong></span> 1 - the requested probability
+        is to the right of the value returned.</em></span>
+      </p>
+<p>
+        Likewise for two-sided intervals, we would round lower quantiles down, and
+        upper quantiles up. This ensures that we have <span class="emphasis"><em>at least the requested
+        probability in the central region</em></span> and <span class="emphasis"><em>no more than 1
+        minus the requested probability in the tail areas.</em></span>
+      </p>
+<p>
+        For example, taking our 50 sample binomial distribution with a success fraction
+        of 0.5, if we wanted a two sided 90% confidence interval, then we would ask
+        for the 0.05 and 0.95 quantiles with the results <span class="emphasis"><em>rounded outwards</em></span>
+        so that <span class="emphasis"><em>at least 90% of the probability</em></span> is in the central
+        area:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/binomial_pdf_3.png"></span>
+      </p>
+<p>
+        So far so good, but there is in fact a trap waiting for the unwary here:
+      </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span>
+</pre>
+<p>
+        returns 18 as the result, which is what we would expect from the graph above,
+        and indeed there is no x greater than 18 for which:
+      </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special"><=</span> <span class="number">0.05</span><span class="special">;</span>
+</pre>
+<p>
+        However:
+      </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">);</span>
+</pre>
+<p>
+        returns 31, and indeed while there is no x less than 31 for which:
+      </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">>=</span> <span class="number">0.95</span><span class="special">;</span>
+</pre>
+<p>
+        We might naively expect that for this symmetrical distribution the result
+        would be 32 (since 32 = 50 - 18), but we need to remember that the cdf of
+        the binomial is <span class="emphasis"><em>inclusive</em></span> of the random variable. So
+        while the left tail area <span class="emphasis"><em>includes</em></span> the quantile returned,
+        the right tail area always excludes an upper quantile value: since that "belongs"
+        to the central area.
+      </p>
+<p>
+        Look at the graph above to see what's going on here: the lower quantile of
+        18 belongs to the left tail, so any value <= 18 is in the left tail. The
+        upper quantile of 31 on the other hand belongs to the central area, so the
+        tail area actually starts at 32, so any value > 31 is in the right tail.
+      </p>
+<p>
+        Therefore if U and L are the upper and lower quantiles respectively, then
+        a random variable X is in the tail area - where we would reject the null
+        hypothesis if:
+      </p>
+<pre class="programlisting"><span class="identifier">X</span> <span class="special"><=</span> <span class="identifier">L</span> <span class="special">||</span> <span class="identifier">X</span> <span class="special">></span> <span class="identifier">U</span>
+</pre>
+<p>
+        And the a variable X is inside the central region if:
+      </p>
+<pre class="programlisting"><span class="identifier">L</span> <span class="special"><</span> <span class="identifier">X</span> <span class="special"><=</span> <span class="identifier">U</span>
+</pre>
+<p>
+        The moral here is to <span class="emphasis"><em>always be very careful with your comparisons
+        when dealing with a discrete distribution</em></span>, and if in doubt, <span class="emphasis"><em>base
+        your comparisons on CDF's instead</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.pol_tutorial.understand_dis_quant.h0"></a>
+        <span class="phrase"><a name="math_toolkit.pol_tutorial.understand_dis_quant.other_rounding_policies_are_avai"></a></span><a class="link" href="understand_dis_quant.html#math_toolkit.pol_tutorial.understand_dis_quant.other_rounding_policies_are_avai">Other
+        Rounding Policies are Available</a>
+      </h5>
+<p>
+        As you would expect from a section on policies, you won't be surprised to
+        know that other rounding options are available:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">integer_round_outwards</span></dt>
+<dd>
+<p>
+              This is the default policy as described above: lower quantiles are
+              rounded down (probability < 0.5), and upper quantiles (probability
+              > 0.5) are rounded up.
+            </p>
+<p>
+              This gives <span class="emphasis"><em>no more than</em></span> the requested probability
+              in the tails, and <span class="emphasis"><em>at least</em></span> the requested probability
+              in the central area.
+            </p>
+</dd>
+<dt><span class="term">integer_round_inwards</span></dt>
+<dd>
+<p>
+              This is the exact opposite of the default policy: lower quantiles are
+              rounded up (probability < 0.5), and upper quantiles (probability
+              > 0.5) are rounded down.
+            </p>
+<p>
+              This gives <span class="emphasis"><em>at least</em></span> the requested probability
+              in the tails, and <span class="emphasis"><em>no more than</em></span> the requested probability
+              in the central area.
+            </p>
+</dd>
+<dt><span class="term">integer_round_down</span></dt>
+<dd><p>
+              This policy will always round the result down no matter whether it
+              is an upper or lower quantile
+            </p></dd>
+<dt><span class="term">integer_round_up</span></dt>
+<dd><p>
+              This policy will always round the result up no matter whether it is
+              an upper or lower quantile
+            </p></dd>
+<dt><span class="term">integer_round_nearest</span></dt>
+<dd><p>
+              This policy will always round the result to the nearest integer no
+              matter whether it is an upper or lower quantile
+            </p></dd>
+<dt><span class="term">real</span></dt>
+<dd><p>
+              This policy will return a real valued result for the quantile of a
+              discrete distribution: this is generally much slower than finding an
+              integer result but does allow for more sophisticated rounding policies.
+            </p></dd>
+</dl>
+</div>
+<p>
+        To understand how the rounding policies for the discrete distributions can
+        be used, we'll use the 50-sample binomial distribution with a success fraction
+        of 0.5 once again, and calculate all the possible quantiles at 0.05 and 0.95.
+      </p>
+<p>
+        Begin by including the needed headers (and some using statements for conciseness):
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">fixed</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">right</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">scientific</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        Next we'll bring the needed declarations into scope, and define distribution
+        types for all the available rounding policies:
+      </p>
+<pre class="programlisting"><span class="comment">// Avoid </span>
+<span class="comment">// using namespace std; // and </span>
+<span class="comment">// using namespace boost::math;</span>
+<span class="comment">// to avoid potential ambiguity of names, like binomial.</span>
+<span class="comment">// using namespace boost::math::policies; is small risk, but</span>
+<span class="comment">// the necessary items are brought into scope thus:</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">discrete_quantile</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_outwards</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_down</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_up</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_nearest</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_inwards</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">real</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span> <span class="comment">// Not std::binomial_distribution.</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_outwards</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_round_outwards</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_inwards</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_round_inwards</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_down</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_round_down</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_up</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_round_up</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">integer_round_nearest</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_round_nearest</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span>
+            <span class="keyword">double</span><span class="special">,</span>
+            <span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">real</span><span class="special">></span> <span class="special">></span> <span class="special">></span>
+        <span class="identifier">binom_real_quantile</span><span class="special">;</span>
+</pre>
+<p>
+        Now let's set to work calling those quantiles:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span>
+      <span class="string">"Testing rounding policies for a 50 sample binomial distribution,\n"</span>
+      <span class="string">"with a success fraction of 0.5.\n\n"</span>
+      <span class="string">"Lower quantiles are calculated at p = 0.05\n\n"</span>
+      <span class="string">"Upper quantiles at p = 0.95.\n\n"</span><span class="special">;</span>
+
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"Policy"</span><span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"Lower Quantile"</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"Upper Quantile"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test integer_round_outwards:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"integer_round_outwards"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_outwards</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_outwards</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test integer_round_inwards:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"integer_round_inwards"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_inwards</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_inwards</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test integer_round_down:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"integer_round_down"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_down</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_down</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test integer_round_up:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"integer_round_up"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_up</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_up</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test integer_round_nearest:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"integer_round_nearest"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_nearest</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_round_nearest</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Test real:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="string">"real"</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_real_quantile</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">18</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binom_real_quantile</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">)</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+        Which produces the program output:
+      </p>
+<pre class="programlisting">  policy_eg_10.vcxproj -> J:\Cpp\MathToolkit\test\Math_test\Release\policy_eg_10.exe
+  Testing rounding policies for a 50 sample binomial distribution,
+  with a success fraction of 0.5.
+
+  Lower quantiles are calculated at p = 0.05
+
+  Upper quantiles at p = 0.95.
+
+                     Policy    Lower Quantile    Upper Quantile
+     integer_round_outwards                18                31
+      integer_round_inwards                19                30
+         integer_round_down                18                30
+           integer_round_up                19                31
+      integer_round_nearest                19                30
+                       real            18.701            30.299
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="user_def_err_pol.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../pol_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/user_def_err_pol.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/user_def_err_pol.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,444 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calling User Defined Error Handlers</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope">
+<link rel="next" href="understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="namespace_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="understand_dis_quant.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_user_def_err_pol">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.user_def_err_pol"></a><a class="link" href="user_def_err_pol.html" title="Calling User Defined Error Handlers">Calling User
+      Defined Error Handlers</a>
+</h3></div></div></div>
+<p>
+        Suppose we want our own user-defined error handlers rather than the any of
+        the default ones supplied by the library to be used. If we set the policy
+        for a specific type of error to <code class="computeroutput"><span class="identifier">user_error</span></code>
+        then the library will call a user-supplied error handler. These are forward
+        declared, but not defined in boost/math/policies/error_handling.hpp like
+        this:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_pole_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_overflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_underflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_denorm_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_evaluation_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">TargetType</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_rounding_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">TargetType</span><span class="special">&</span> <span class="identifier">t</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_indeterminate_result_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        So out first job is to include the header we want to use, and then provide
+        definitions for our user-defined error handlers that we want to use. We only
+        provide our special domain and pole error handlers; other errors like overflow
+        and underflow use the default.
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span>
+<span class="special">{</span>
+  <span class="keyword">namespace</span> <span class="identifier">policies</span>
+  <span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+    <span class="special">{</span> <span class="comment">// Ignoring function, message and val for this example, perhaps unhelpfully.</span>
+       <span class="identifier">cerr</span> <span class="special"><<</span> <span class="string">"Domain Error!"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+       <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="identifier">T</span> <span class="identifier">user_pole_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+    <span class="special">{</span> <span class="comment">// Ignoring function, message and val for this example, perhaps unhelpfully.</span>
+       <span class="identifier">cerr</span> <span class="special"><<</span> <span class="string">"Pole Error!"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+       <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+    <span class="special">}</span>
+  <span class="special">}</span> <span class="comment">// namespace policies</span>
+<span class="special">}}</span> <span class="comment">// namespace boost{ namespace math</span>
+</pre>
+<p>
+        Now we'll need to define a suitable policy that will call these handlers,
+        and define some forwarding functions that make use of the policy:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span><span class="special">{</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+   <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">user_error_policy</span><span class="special">;</span>
+
+<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">user_error_policy</span><span class="special">)</span>
+
+<span class="special">}</span> <span class="comment">// close unnamed namespace</span>
+</pre>
+<p>
+        We now have a set of forwarding functions defined in an unnamed namespace
+        that all look something like this:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special"><</span><span class="identifier">RT</span><span class="special">>::</span><span class="identifier">type</span>
+   <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">user_error_policy</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+        So that when we call <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span></code>
+        we really end up calling <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span>
+        <span class="identifier">user_error_policy</span><span class="special">())</span></code>,
+        and any errors will get directed to our own error handlers.
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of erf_inv(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">erf_inv</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which outputs:
+      </p>
+<pre class="programlisting">  Domain Error!
+  Pole Error!
+  Result of erf_inv(-10) is: 1.#QNAN
+  Result of tgamma(-10) is: 1.#QNAN
+</pre>
+<p>
+        The previous example was all well and good, but the custom error handlers
+        didn't really do much of any use. In this example we'll implement all the
+        custom handlers and show how the information provided to them can be used
+        to generate nice formatted error messages.
+      </p>
+<p>
+        Each error handler has the general form:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_</span><span class="emphasis"><em>error_type</em></span><span class="special">(</span>
+   <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span>
+   <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span>
+   <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
+</pre>
+<p>
+        and accepts three arguments:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">const char* function</span></dt>
+<dd><p>
+              The name of the function that raised the error, this string contains
+              one or more %1% format specifiers that should be replaced by the name
+              of real type T, like float or double.
+            </p></dd>
+<dt><span class="term">const char* message</span></dt>
+<dd><p>
+              A message associated with the error, normally this contains a %1% format
+              specifier that should be replaced with the value of <span class="emphasis"><em>value</em></span>:
+              however note that overflow and underflow messages do not contain this
+              %1% specifier (since the value of <span class="emphasis"><em>value</em></span> is immaterial
+              in these cases).
+            </p></dd>
+<dt><span class="term">const T& value</span></dt>
+<dd><p>
+              The value that caused the error: either an argument to the function
+              if this is a domain or pole error, the tentative result if this is
+              a denorm or evaluation error, or zero or infinity for underflow or
+              overflow errors.
+            </p></dd>
+</dl>
+</div>
+<p>
+        As before we'll include the headers we need first:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+        Next we'll implement our own error handlers for each type of error, starting
+        with domain errors:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">policies</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+</pre>
+<p>
+        We'll begin with a bit of defensive programming in case function or message
+        are empty:
+      </p>
+<pre class="programlisting"><span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+    <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+    <span class="identifier">message</span> <span class="special">=</span> <span class="string">"Cause unknown with bad argument %1%"</span><span class="special">;</span>
+</pre>
+<p>
+        Next we'll format the name of the function with the name of type T, perhaps
+        double:
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+<span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span>
+</pre>
+<p>
+        Then likewise format the error message with the value of parameter <span class="emphasis"><em>val</em></span>,
+        making sure we output all the potentially significant digits of <span class="emphasis"><em>val</em></span>:
+      </p>
+<pre class="programlisting"><span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">prec</span> <span class="special">=</span> <span class="number">2</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span> <span class="special">*</span> <span class="number">30103UL</span><span class="special">)</span> <span class="special">/</span> <span class="number">100000UL</span><span class="special">;</span>
+<span class="comment">// int prec = std::numeric_limits<T>::max_digits10; //  For C++0X Standard Library</span>
+<span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">message</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">group</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">prec</span><span class="special">),</span> <span class="identifier">val</span><span class="special">)).</span><span class="identifier">str</span><span class="special">();</span>
+</pre>
+<p>
+        Now we just have to do something with the message, we could throw an exception,
+        but for the purposes of this example we'll just dump the message to std::cerr:
+      </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special"><<</span> <span class="identifier">msg</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+        Finally the only sensible value we can return from a domain error is a NaN:
+      </p>
+<pre class="programlisting">   <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Pole errors are essentially a special case of domain errors, so in this example
+        we'll just return the result of a domain error:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_pole_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">return</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="identifier">function</span><span class="special">,</span> <span class="identifier">message</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Overflow errors are very similar to domain errors, except that there's no
+        %1% format specifier in the <span class="emphasis"><em>message</em></span> parameter:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_overflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">message</span> <span class="special">=</span> <span class="string">"Result of function is too large to represent"</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span>
+
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="identifier">message</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special"><<</span> <span class="identifier">msg</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Value passed to the function is an infinity, just return it:</span>
+   <span class="keyword">return</span> <span class="identifier">val</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Underflow errors are much the same as overflow:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_underflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">message</span> <span class="special">=</span> <span class="string">"Result of function is too small to represent"</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span>
+
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="identifier">message</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special"><<</span> <span class="identifier">msg</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Value passed to the function is zero, just return it:</span>
+   <span class="keyword">return</span> <span class="identifier">val</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Denormalised results are much the same as underflow:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_denorm_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">message</span> <span class="special">=</span> <span class="string">"Result of function is denormalised"</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span>
+
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="identifier">message</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special"><<</span> <span class="identifier">msg</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// Value passed to the function is denormalised, just return it:</span>
+   <span class="keyword">return</span> <span class="identifier">val</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Which leaves us with evaluation errors: these occur when an internal error
+        occurs that prevents the function being fully evaluated. The parameter <span class="emphasis"><em>val</em></span>
+        contains the closest approximation to the result found so far:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_evaluation_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
+   <span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+       <span class="identifier">message</span> <span class="special">=</span> <span class="string">"An internal evaluation error occurred with "</span>
+                  <span class="string">"the best value calculated so far of %1%"</span><span class="special">;</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span>
+
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+   <span class="keyword">int</span> <span class="identifier">prec</span> <span class="special">=</span> <span class="number">2</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span> <span class="special">*</span> <span class="number">30103UL</span><span class="special">)</span> <span class="special">/</span> <span class="number">100000UL</span><span class="special">;</span>
+   <span class="comment">// int prec = std::numeric_limits<T>::max_digits10; // For C++0X Standard Library</span>
+   <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">message</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">group</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">prec</span><span class="special">),</span> <span class="identifier">val</span><span class="special">)).</span><span class="identifier">str</span><span class="special">();</span>
+
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special"><<</span> <span class="identifier">msg</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="comment">// What do we return here?  This is generally a fatal error, that should never occur,</span>
+   <span class="comment">// so we just return a NaN for the purposes of the example:</span>
+   <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+<span class="special">}</span>
+
+<span class="special">}</span> <span class="comment">// policies</span>
+<span class="special">}}</span> <span class="comment">// boost::math</span>
+</pre>
+<p>
+        Now we'll need to define a suitable policy that will call these handlers,
+        and define some forwarding functions that make use of the policy:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span>
+<span class="special">{</span> <span class="comment">// unnamed.</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span>
+   <span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">pole_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">underflow_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">denorm_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">>,</span>
+   <span class="identifier">evaluation_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">user_error_policy</span><span class="special">;</span>
+
+<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">user_error_policy</span><span class="special">)</span>
+
+<span class="special">}</span> <span class="comment">// unnamed namespace</span>
+</pre>
+<p>
+        We now have a set of forwarding functions, defined in an unnamed namespace,
+        that all look something like this:
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special"><</span><span class="identifier">RT</span><span class="special">>::</span><span class="identifier">type</span>
+   <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">user_error_policy</span><span class="special">());</span>
+<span class="special">}</span>
+</pre>
+<p>
+        So that when we call <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span></code>
+        we really end up calling <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span>
+        <span class="identifier">user_error_policy</span><span class="special">())</span></code>,
+        and any errors will get directed to our own error handlers:
+      </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="comment">// Raise a domain error:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of erf_inv(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">erf_inv</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Raise a pole error:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-10) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Raise an overflow error:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(3000) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="number">3000</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Raise an underflow error:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Result of tgamma(-190.5) is: "</span>
+      <span class="special"><<</span> <span class="identifier">tgamma</span><span class="special">(-</span><span class="number">190.5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Unfortunately we can't predicably raise a denormalised</span>
+   <span class="comment">// result, nor can we raise an evaluation error in this example</span>
+   <span class="comment">// since these should never really occur!</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+        Which outputs:
+      </p>
+<pre class="programlisting">Error in function boost::math::erf_inv<double>(double, double):
+Argument outside range [-1, 1] in inverse erf function (got p=-10).
+Result of erf_inv(-10) is: 1.#QNAN
+
+Error in function boost::math::tgamma<long double>(long double):
+Evaluation of tgamma at a negative integer -10.
+Result of tgamma(-10) is: 1.#QNAN
+
+Error in function boost::math::tgamma<long double>(long double):
+Result of tgamma is too large to represent.
+Error in function boost::math::tgamma<double>(double):
+Result of function is too large to represent
+Result of tgamma(3000) is: 1.#INF
+
+Error in function boost::math::tgamma<long double>(long double):
+Result of tgamma is too large to represent.
+Error in function boost::math::tgamma<long double>(long double):
+Result of tgamma is too small to represent.
+Result of tgamma(-190.5) is: 0
+</pre>
+<p>
+        Notice how some of the calls result in an error handler being called more
+        than once, or for more than one handler to be called: this is an artefact
+        of the fact that many functions are implemented in terms of one or more sub-routines
+        each of which may have it's own error handling. For example <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(-</span><span class="number">190.5</span><span class="special">)</span></code> is implemented
+        in terms of <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="number">190.5</span><span class="special">)</span></code> - which
+        overflows - the reflection formula for <code class="computeroutput"><span class="identifier">tgamma</span></code>
+        then notices that it is dividing by infinity and so underflows.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="namespace_policies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="understand_dis_quant.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/what_is_a_policy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/pol_tutorial/what_is_a_policy.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>So Just What is a Policy Anyway?</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="prev" href="../pol_tutorial.html" title="Policy Tutorial">
+<link rel="next" href="policy_tut_defaults.html" title="Policies Have Sensible Defaults">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../pol_tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_tut_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_pol_tutorial_what_is_a_policy">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.pol_tutorial.what_is_a_policy"></a><a class="link" href="what_is_a_policy.html" title="So Just What is a Policy Anyway?">So Just What
+      is a Policy Anyway?</a>
+</h3></div></div></div>
+<p>
+        A policy is a compile-time mechanism for customising the behaviour of a special
+        function, or a statistical distribution. With Policies you can control:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            What action to take when an error occurs.
+          </li>
+<li class="listitem">
+            What happens when you call a function that is mathematically undefined
+            (for example, if you ask for the mean of a Cauchy distribution).
+          </li>
+<li class="listitem">
+            What happens when you ask for a quantile of a discrete distribution.
+          </li>
+<li class="listitem">
+            Whether the library is allowed to internally promote <code class="computeroutput"><span class="keyword">float</span></code>
+            to <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">double</span></code> to <code class="computeroutput"><span class="keyword">long</span>
+            <span class="keyword">double</span></code> in order to improve precision.
+          </li>
+<li class="listitem">
+            What precision to use when calculating the result.
+          </li>
+</ul></div>
+<p>
+        Some of these policies could arguably be runtime variables, but then we couldn't
+        use compile-time dispatch internally to select the best evaluation method
+        for the given policies.
+      </p>
+<p>
+        For this reason a Policy is a <span class="emphasis"><em>type</em></span>: in fact it's an
+        instance of the class template <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span></code>. This class is just a compile-time-container
+        of user-selected policies (sometimes called a type-list):
+      </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// Define a policy that sets ::errno on overflow, and does</span>
+<span class="comment">// not promote double to long double internally:</span>
+<span class="comment">//</span>
+<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">errno_on_error</span><span class="special">>,</span> <span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="identifier">mypolicy</span><span class="special">;</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../pol_tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="policy_tut_defaults.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Basic Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="expint/expint_i.html" title="Exponential Integral Ei">
+<link rel="next" href="powers/sin_pi.html" title="sin_pi">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="expint/expint_i.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="powers/sin_pi.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.powers"></a><a class="link" href="powers.html" title="Basic Functions">Basic Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">sin_pi</span></dt>
+<dt><span class="section">cos_pi</span></dt>
+<dt><span class="section">log1p</span></dt>
+<dt><span class="section">expm1</span></dt>
+<dt><span class="section">cbrt</span></dt>
+<dt><span class="section">sqrt1pm1</span></dt>
+<dt><span class="section">powm1</span></dt>
+<dt><span class="section">hypot</span></dt>
+<dt><span class="section"><a href="powers/ct_pow.html">Compile Time Power of a Runtime
+      Base</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="expint/expint_i.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="powers/sin_pi.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/cbrt.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/cbrt.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>cbrt</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="expm1.html" title="expm1">
+<link rel="next" href="sqrt1pm1.html" title="sqrt1pm1">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="expm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sqrt1pm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_cbrt">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.cbrt"></a><a class="link" href="cbrt.html" title="cbrt">cbrt</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">cbrt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the cubed root of x: x<sup>1/3</sup>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Implemented using Halley iteration.
+      </p>
+<p>
+        The following graph illustrates the behaviour of cbrt:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/cbrt.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.powers.cbrt.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.cbrt.accuracy"></a></span><a class="link" href="cbrt.html#math_toolkit.powers.cbrt.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For built in floating-point types <code class="computeroutput"><span class="identifier">cbrt</span></code>
+        should have approximately 2 epsilon accuracy.
+      </p>
+<h5>
+<a name="math_toolkit.powers.cbrt.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.cbrt.testing"></a></span><a class="link" href="cbrt.html#math_toolkit.powers.cbrt.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot test sanity checks, and random high precision test values
+        calculated using NTL::RR at 1000-bit precision.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="expm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sqrt1pm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/cos_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/cos_pi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>cos_pi</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="sin_pi.html" title="sin_pi">
+<link rel="next" href="log1p.html" title="log1p">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sin_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="log1p.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_cos_pi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.cos_pi"></a><a class="link" href="cos_pi.html" title="cos_pi">cos_pi</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">cos_pi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cos_pi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cos_pi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the cosine of <span class="emphasis"><em>πx</em></span>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function performs exact all-integer arithmetic argument reduction before
+        computing the cosine of <span class="emphasis"><em>πx</em></span>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sin_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="log1p.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/ct_pow.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/ct_pow.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,255 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Compile Time Power of a Runtime Base</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="hypot.html" title="hypot">
+<link rel="next" href="../sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="hypot.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sinc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_ct_pow">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.ct_pow"></a><a class="link" href="ct_pow.html" title="Compile Time Power of a Runtime Base">Compile Time Power of a Runtime
+      Base</a>
+</h3></div></div></div>
+<p>
+        The <code class="computeroutput"><span class="identifier">pow</span></code> function effectively
+        computes the compile-time integral power of a run-time base.
+      </p>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.synopsis"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.synopsis">Synopsis</a>
+      </h5>
+<p>
+        #include <boost/math/special_functions/pow.hpp>
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">base</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">base</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&</span> <span class="identifier">policy</span><span class="special">);</span>
+
+<span class="special">}}</span>
+</pre>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.rationale_and_usage"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.rationale_and_usage">Rationale
+        and Usage</a>
+      </h5>
+<p>
+        Computing the power of a number with an exponent that is known at compile
+        time is a common need for programmers. In such cases, the usual method is
+        to avoid the overhead implied by the <code class="computeroutput"><span class="identifier">pow</span></code>,
+        <code class="computeroutput"><span class="identifier">powf</span></code> and <code class="computeroutput"><span class="identifier">powl</span></code>
+        C functions by hardcoding an expression such as:
+      </p>
+<pre class="programlisting"><span class="comment">// Hand-written 8th power of a 'base' variable</span>
+<span class="keyword">double</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">;</span>
+</pre>
+<p>
+        However, this kind of expression is not really readable (knowing the value
+        of the exponent involves counting the number of occurrences of <span class="emphasis"><em>base</em></span>),
+        error-prone (it's easy to forget an occurrence), syntactically bulky, and
+        non-optimal in terms of performance.
+      </p>
+<p>
+        The pow function of Boost.Math helps writing this kind expression along with
+        solving all the problems listed above:
+      </p>
+<pre class="programlisting"><span class="comment">// 8th power of a 'base' variable using math::pow</span>
+<span class="keyword">double</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">pow</span><span class="special"><</span><span class="number">8</span><span class="special">>(</span><span class="identifier">base</span><span class="special">);</span>
+</pre>
+<p>
+        The expression is now shorter, easier to read, safer, and even faster. Indeed,
+        <code class="computeroutput"><span class="identifier">pow</span></code> will compute the expression
+        such that only log2(N) products are made for a power of N. For instance in
+        the example above, the resulting expression will be the same as if we had
+        written this, with only one computation of each identical subexpression:
+      </p>
+<pre class="programlisting"><span class="comment">// Internal effect of pow<8>(base)</span>
+<span class="keyword">double</span> <span class="identifier">result</span> <span class="special">=</span> <span class="special">((</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">)*(</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">))*((</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">)*(</span><span class="identifier">base</span><span class="special">*</span><span class="identifier">base</span><span class="special">));</span>
+</pre>
+<p>
+        Only 3 different products were actually computed.
+      </p>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h2"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.return_type"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.return_type">Return
+        Type</a>
+      </h5>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>. For example:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            If T is a <code class="computeroutput"><span class="keyword">float</span></code>, the return
+            type is a <code class="computeroutput"><span class="keyword">float</span></code>.
+          </li>
+<li class="listitem">
+            If T is a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+            the return type is a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+          </li>
+<li class="listitem">
+            Otherwise, the return type is a <code class="computeroutput"><span class="keyword">double</span></code>.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h3"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.policies"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.policies">Policies</a>
+      </h5>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h4"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.error_handling"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.error_handling">Error
+        Handling</a>
+      </h5>
+<p>
+        Two cases of errors can occur when using <code class="computeroutput"><span class="identifier">pow</span></code>:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            In case of null base and negative exponent, an <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>
+            occurs since this operation is a division by 0 (it equals to 1/0).
+          </li>
+<li class="listitem">
+            In case of null base and null exponent, an <a class="link" href="../error_handling.html#math_toolkit.error_handling.indeterminate_result_error">indeterminate_result_error</a>
+            occurs since the result of this operation is indeterminate. Those errors
+            follow the <a class="link" href="../error_handling.html" title="Error Handling">general policies
+            of error handling in Boost.Math</a>.
+          </li>
+</ul></div>
+<p>
+        The default overflow error policy is <code class="computeroutput"><span class="identifier">throw_on_error</span></code>.
+        A call like <code class="computeroutput"><span class="identifier">pow</span><span class="special"><-</span><span class="number">2</span><span class="special">>(</span><span class="number">0</span><span class="special">)</span></code> will thus throw a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">overflow_error</span></code>
+        exception. As shown in the link given above, other error handling policies
+        can be used:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">errno_on_error</span></code>: Sets
+            <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+            to <code class="computeroutput"><span class="identifier">ERANGE</span></code> and returns
+            <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code>.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">ignore_error</span></code>: Returns
+            <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">infinity</span><span class="special">()</span></code>.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">user_error</span></code>: Returns the
+            result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_overflow_error</span></code>: this function
+            must be defined by the user.
+          </li>
+</ul></div>
+<p>
+        The default indeterminate result error policy is <code class="computeroutput"><span class="identifier">ignore_error</span></code>,
+        which for this function returns 1 since it's the most commonly chosen result
+        for a power of 0. Here again, other error handling policies can be used:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">throw_on_error</span></code>: Throws
+            <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">domain_error</span></code>
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">errno_on_error</span></code>: Sets
+            <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+            to <code class="computeroutput"><span class="identifier">EDOM</span></code> and returns 1.
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">user_error</span></code>: Returns the
+            result of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">user_indeterminate_result_error</span></code>: this
+            function must be defined by the user.
+          </li>
+</ul></div>
+<p>
+        Here is an example of error handling customization where we want to specify
+        the result that has to be returned in case of error. We will thus use the
+        <code class="computeroutput"><span class="identifier">user_error</span></code> policy, by passing
+        as second argument an instance of an overflow_error policy templated with
+        <code class="computeroutput"><span class="identifier">user_error</span></code>:
+      </p>
+<pre class="programlisting"><span class="comment">// First we open the boost::math::policies namespace and define the `user_overflow_error`</span>
+<span class="comment">// by making it return the value we want in case of error (-1 here)</span>
+
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">user_overflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span>
+<span class="special">{</span> <span class="keyword">return</span> <span class="special">-</span><span class="number">1</span><span class="special">;</span> <span class="special">}</span>
+<span class="special">}}}</span>
+
+
+<span class="comment">// Then we invoke pow and indicate that we want to use the user_error policy</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">pow</span><span class="special"><-</span><span class="number">5</span><span class="special">>(</span><span class="identifier">base</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">overflow_error</span><span class="special"><</span><span class="identifier">user_error</span><span class="special">></span> <span class="special">>());</span>
+
+<span class="comment">// We can now test the returned value and treat the special case if needed:</span>
+<span class="keyword">if</span> <span class="special">(</span><span class="identifier">result</span> <span class="special">==</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="comment">// there was an error, do something...</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Another way is to redefine the default <code class="computeroutput"><span class="identifier">overflow_error</span></code>
+        policy by using the BOOST_MATH_OVERFLOW_ERROR_POLICY macro. Once the <code class="computeroutput"><span class="identifier">user_overflow_error</span></code> function is defined
+        as above, we can achieve the same result like this:
+      </p>
+<pre class="programlisting"><span class="comment">// Redefine the default error_overflow policy</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">user_error</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">pow</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">// From this point, passing a policy in argument is no longer needed, a call like this one</span>
+<span class="comment">// will return -1 in case of error:</span>
+
+<span class="keyword">double</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">pow</span><span class="special"><-</span><span class="number">5</span><span class="special">>(</span><span class="identifier">base</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h5"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.acknowledgements"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.acknowledgements">Acknowledgements</a>
+      </h5>
+<p>
+        Bruno Lalande submitted this addition to Boost.Math.
+      </p>
+<p>
+        Thanks to Joaquín López Muñoz and Scott McMurray for their help in
+improving the implementation.
+      </p>
+<h5>
+<a name="math_toolkit.powers.ct_pow.h6"></a>
+        <span class="phrase"><a name="math_toolkit.powers.ct_pow.references"></a></span><a class="link" href="ct_pow.html#math_toolkit.powers.ct_pow.references">References</a>
+      </h5>
+<p>
+        D.E. Knuth, <span class="emphasis"><em>The Art of Computer Programming, Vol. 2: Seminumerical
+        Algorithms</em></span>, 2nd ed., Addison-Wesley, Reading, MA, 1981
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hypot.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sinc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/expm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/expm1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>expm1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="log1p.html" title="log1p">
+<link rel="next" href="cbrt.html" title="cbrt">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="log1p.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cbrt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_expm1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.expm1"></a><a class="link" href="expm1.html" title="expm1">expm1</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns e<sup>x</sup> - 1.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        For small x, then <code class="computeroutput">e<sup>x</sup></code> is very close to 1, as a result calculating <code class="computeroutput">e<sup>x</sup> - 1</code> results in
+        catastrophic cancellation errors when x is small. <code class="computeroutput"><span class="identifier">expm1</span></code>
+        calculates <code class="computeroutput">e<sup>x</sup> - 1</code> using rational approximations (for up to 128-bit long doubles),
+        otherwise via a series expansion when x is small (giving an accuracy of less
+        than 2ɛ).
+      </p>
+<p>
+        Finally when BOOST_HAS_EXPM1 is defined then the <code class="computeroutput"><span class="keyword">float</span><span class="special">/</span><span class="keyword">double</span><span class="special">/</span><span class="keyword">long</span> <span class="keyword">double</span></code>
+        specializations of this template simply forward to the platform's native
+        (POSIX) implementation of this function.
+      </p>
+<p>
+        The following graph illustrates the behaviour of expm1:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/expm1.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.powers.expm1.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.expm1.accuracy"></a></span><a class="link" href="expm1.html#math_toolkit.powers.expm1.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For built in floating point types <code class="computeroutput"><span class="identifier">expm1</span></code>
+        should have approximately 1 epsilon accuracy.
+      </p>
+<h5>
+<a name="math_toolkit.powers.expm1.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.expm1.testing"></a></span><a class="link" href="expm1.html#math_toolkit.powers.expm1.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot test sanity checks, and random high precision test values
+        calculated using NTL::RR at 1000-bit precision.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="log1p.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cbrt.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/hypot.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/hypot.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,81 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>hypot</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="powm1.html" title="powm1">
+<link rel="next" href="ct_pow.html" title="Compile Time Power of a Runtime Base">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="powm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ct_pow.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_hypot">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.hypot"></a><a class="link" href="hypot.html" title="hypot">hypot</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hypot</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hypot</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        <span class="bold"><strong>Effects: </strong></span> computes <span class="inlinemediaobject"><img src="../../../equations/hypot.png"></span>
+in such a way
+        as to avoid undue underflow and overflow.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are of different
+        types.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        When calculating <span class="inlinemediaobject"><img src="../../../equations/hypot.png"></span> it's quite easy for the intermediate terms to
+        either overflow or underflow, even though the result is in fact perfectly
+        representable.
+      </p>
+<h5>
+<a name="math_toolkit.powers.hypot.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.hypot.implementation"></a></span><a class="link" href="hypot.html#math_toolkit.powers.hypot.implementation">Implementation</a>
+      </h5>
+<p>
+        The function is even and symmetric in x and y, so first take assume <span class="emphasis"><em>x,y
+        > 0</em></span> and <span class="emphasis"><em>x > y</em></span> (we can permute the arguments
+        if this is not the case).
+      </p>
+<p>
+        Then if <span class="emphasis"><em>x * ε   >= y</em></span> we can simply return <span class="emphasis"><em>x</em></span>.
+      </p>
+<p>
+        Otherwise the result is given by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hypot2.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="powm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ct_pow.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/log1p.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/log1p.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>log1p</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="cos_pi.html" title="cos_pi">
+<link rel="next" href="expm1.html" title="expm1">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cos_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="expm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_log1p">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.log1p"></a><a class="link" href="log1p.html" title="log1p">log1p</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">log1p</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">log1p</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">log1p</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the natural logarithm of <code class="computeroutput"><span class="identifier">x</span><span class="special">+</span><span class="number">1</span></code>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        There are many situations where it is desirable to compute <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span></code>.
+        However, for small <code class="computeroutput"><span class="identifier">x</span></code> then
+        <code class="computeroutput"><span class="identifier">x</span><span class="special">+</span><span class="number">1</span></code> suffers from catastrophic cancellation errors
+        so that <code class="computeroutput"><span class="identifier">x</span><span class="special">+</span><span class="number">1</span> <span class="special">==</span> <span class="number">1</span></code>
+        and <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">==</span> <span class="number">0</span></code>,
+        when in fact for very small x, the best approximation to <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span></code> would be
+        <code class="computeroutput"><span class="identifier">x</span></code>. <code class="computeroutput"><span class="identifier">log1p</span></code>
+        calculates the best approximation to <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span></code> using
+        a Taylor series expansion for accuracy (less than 2ɛ). Alternatively note that
+        there are faster methods available, for example using the equivalence:
+      </p>
+<pre class="programlisting"><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="special">((</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+<p>
+        However, experience has shown that these methods tend to fail quite spectacularly
+        once the compiler's optimizations are turned on, consequently they are used
+        only when known not to break with a particular compiler. In contrast, the
+        series expansion method seems to be reasonably immune to optimizer-induced
+        errors.
+      </p>
+<p>
+        Finally when BOOST_HAS_LOG1P is defined then the <code class="computeroutput"><span class="keyword">float</span><span class="special">/</span><span class="keyword">double</span><span class="special">/</span><span class="keyword">long</span> <span class="keyword">double</span></code>
+        specializations of this template simply forward to the platform's native
+        (POSIX) implementation of this function.
+      </p>
+<p>
+        The following graph illustrates the behaviour of log1p:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/log1p.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.powers.log1p.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.log1p.accuracy"></a></span><a class="link" href="log1p.html#math_toolkit.powers.log1p.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For built in floating point types <code class="computeroutput"><span class="identifier">log1p</span></code>
+        should have approximately 1 epsilon accuracy.
+      </p>
+<h5>
+<a name="math_toolkit.powers.log1p.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.log1p.testing"></a></span><a class="link" href="log1p.html#math_toolkit.powers.log1p.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot test sanity checks, and random high precision test values
+        calculated using NTL::RR at 1000-bit precision.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cos_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="expm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/powm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/powm1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>powm1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="sqrt1pm1.html" title="sqrt1pm1">
+<link rel="next" href="hypot.html" title="hypot">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sqrt1pm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="hypot.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_powm1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.powm1"></a><a class="link" href="powm1.html" title="powm1">powm1</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">powm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">powm1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">powm1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns x<sup>y </sup> - 1.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are dufferent types.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        There are two domains where this is useful: when y is very small, or when
+        x is close to 1.
+      </p>
+<p>
+        Implemented in terms of <code class="computeroutput"><span class="identifier">expm1</span></code>.
+      </p>
+<p>
+        The following graph illustrates the behaviour of powm1:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/powm1.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.powers.powm1.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.powm1.accuracy"></a></span><a class="link" href="powm1.html#math_toolkit.powers.powm1.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Should have approximately 2-3 epsilon accuracy.
+      </p>
+<h5>
+<a name="math_toolkit.powers.powm1.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.powm1.testing"></a></span><a class="link" href="powm1.html#math_toolkit.powers.powm1.testing">Testing</a>
+      </h5>
+<p>
+        A selection of random high precision test values calculated using NTL::RR
+        at 1000-bit precision.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sqrt1pm1.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="hypot.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/sin_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/sin_pi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>sin_pi</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="../powers.html" title="Basic Functions">
+<link rel="next" href="cos_pi.html" title="cos_pi">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../powers.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cos_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_sin_pi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.sin_pi"></a><a class="link" href="sin_pi.html" title="sin_pi">sin_pi</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sin_pi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sin_pi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sin_pi</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns the sine of <span class="emphasis"><em>πx</em></span>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function performs exact all-integer arithmetic argument reduction before
+        computing the sine of <span class="emphasis"><em>πx</em></span>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../powers.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="cos_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/powers/sqrt1pm1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/powers/sqrt1pm1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>sqrt1pm1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../powers.html" title="Basic Functions">
+<link rel="prev" href="cbrt.html" title="cbrt">
+<link rel="next" href="powm1.html" title="powm1">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cbrt.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="powm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_powers_sqrt1pm1">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.powers.sqrt1pm1"></a><a class="link" href="sqrt1pm1.html" title="sqrt1pm1">sqrt1pm1</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sqrt1pm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sqrt1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sqrt1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Returns <code class="computeroutput"><span class="identifier">sqrt</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return is <code class="computeroutput"><span class="keyword">double</span></code>
+        when <span class="emphasis"><em>x</em></span> is an integer type and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        This function is useful when you need the difference between sqrt(x) and
+        1, when x is itself close to 1.
+      </p>
+<p>
+        Implemented in terms of <code class="computeroutput"><span class="identifier">log1p</span></code>
+        and <code class="computeroutput"><span class="identifier">expm1</span></code>.
+      </p>
+<p>
+        The following graph illustrates the behaviour of sqrt1pm1:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/sqrt1pm1.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.powers.sqrt1pm1.h0"></a>
+        <span class="phrase"><a name="math_toolkit.powers.sqrt1pm1.accuracy"></a></span><a class="link" href="sqrt1pm1.html#math_toolkit.powers.sqrt1pm1.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For built in floating-point types <code class="computeroutput"><span class="identifier">sqrt1pm1</span></code>
+        should have approximately 3 epsilon accuracy.
+      </p>
+<h5>
+<a name="math_toolkit.powers.sqrt1pm1.h1"></a>
+        <span class="phrase"><a name="math_toolkit.powers.sqrt1pm1.testing"></a></span><a class="link" href="sqrt1pm1.html#math_toolkit.powers.sqrt1pm1.testing">Testing</a>
+      </h5>
+<p>
+        A selection of random high precision test values calculated using NTL::RR
+        at 1000-bit precision.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cbrt.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="powm1.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/quat.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/quat.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Template Class quaternion</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="synopsis.html" title="Synopsis">
+<link rel="next" href="spec.html" title="Quaternion Specializations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="spec.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_quat">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.quat"></a><a class="link" href="quat.html" title="Template Class quaternion">Template Class quaternion</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+
+   <span class="keyword">typedef</span> <span class="identifier">T</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
+
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">req
uested_d</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">());</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="spec
ial"><</span><span class="identifier">T</span><span class="special">>());</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+
+   <span class="identifier">T</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>      <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">T</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}</span> <span class="comment">// namespace math</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="synopsis.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="spec.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/rationale.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rationale</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="demo.html" title="Demonstration Program">
+<link rel="next" href="history3.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="demo.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history3.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_rationale">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
+</h2></div></div></div>
+<p>
+      The greatest common divisor and least common multiple functions are greatly
+      used in some numeric contexts, including some of the other Boost libraries.
+      Centralizing these functions to one header improves code factoring and eases
+      maintainence.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="demo.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history3.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/refs.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/refs.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,205 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="prev" href="remez.html" title="The Remez Method">
+<link rel="next" href="../status.html" title="Chapter 16. Library Status">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="remez.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../status.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_refs">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.refs"></a><a class="link" href="refs.html" title="References">References</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.refs.h0"></a>
+      <span class="phrase"><a name="math_toolkit.refs.general_references"></a></span><a class="link" href="refs.html#math_toolkit.refs.general_references">General
+      references</a>
+    </h5>
+<p>
+      (Specific detailed sources for individual functions and distributions are given
+      at the end of each individual section).
+    </p>
+<p>
+      <a href="http://dlmf.nist.gov/" target="_top">DLMF (NIST Digital Library of Mathematical
+      Functions)</a> is a replacement for the legendary Abramowitz and Stegun's
+      Handbook of Mathematical Functions (often called simply A&S),
+    </p>
+<p>
+      M. Abramowitz and I. A. Stegun (Eds.) (1964) Handbook of Mathematical Functions
+      with Formulas, Graphs, and Mathematical Tables, National Bureau of Standards
+      Applied Mathematics Series, U.S. Government Printing Office, Washington, D.C.
+    </p>
+<p>
+      NIST Handbook of Mathematical Functions Edited by: Frank W. J. Olver, University
+      of Maryland and National Institute of Standards and Technology, Maryland, Daniel
+      W. Lozier, National Institute of Standards and Technology, Maryland, Ronald
+      F. Boisvert, National Institute of Standards and Technology, Maryland, Charles
+      W. Clark, National Institute of Standards and Technology, Maryland and University
+      of Maryland.
+    </p>
+<p>
+      ISBN: 978-0521140638 (paperback), 9780521192255 (hardback), July 2010, Cambridge
+      University Press.
+    </p>
+<p>
+      <a href="http://www.itl.nist.gov/div898/handbook/index.htm" target="_top">NIST/SEMATECH
+      e-Handbook of Statistical Methods</a>
+    </p>
+<p>
+      <a href="http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/DiscreteDistributions.html" target="_top">Mathematica
+      Documentation: DiscreteDistributions</a> The Wolfram Research Documentation
+      Center is a collection of online reference materials about Mathematica, CalculationCenter,
+      and other Wolfram Research products.
+    </p>
+<p>
+      <a href="http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/ContinuousDistributions.html" target="_top">Mathematica
+      Documentation: ContinuousDistributions</a> The Wolfram Research Documentation
+      Center is a collection of online reference materials about Mathematica, CalculationCenter,
+      and other Wolfram Research products.
+    </p>
+<p>
+      Statistical Distributions (Wiley Series in Probability & Statistics) (Paperback)
+      by N.A.J. Hastings, Brian Peacock, Merran Evans, ISBN: 0471371246, Wiley 2000.
+    </p>
+<p>
+      <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme Value
+      Distributions, Theory and Applications</a> Samuel Kotz & Saralees Nadarajah,
+      ISBN 978-1-86094-224-2 & 1-86094-224-5 Oct 2000, Chapter 1.2 discusses
+      the various extreme value distributions.
+    </p>
+<p>
+      <a href="http://bh0.physics.ubc.ca/People/matt/Doc/ThesesOthers/Phd/pugh.pdf" target="_top">pugh.pdf
+      (application/pdf Object)</a> Pugh Msc Thesis on the Lanczos approximation
+      to the gamma function.
+    </p>
+<p>
+      <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003" target="_top">N1514,
+      03-0097, A Proposal to Add Mathematical Special Functions to the C++ Standard
+      Library (version 2), Walter E. Brown</a>
+    </p>
+<h5>
+<a name="math_toolkit.refs.h1"></a>
+      <span class="phrase"><a name="math_toolkit.refs.calculators"></a></span><a class="link" href="refs.html#math_toolkit.refs.calculators">Calculators</a>
+    </h5>
+<p>
+      We found (and used to create cross-check spot values - as far as their accuracy
+      allowed).
+    </p>
+<p>
+      The Wolfram Functions Site
+      The Wolfram Functions Site - Providing the mathematical and scientific community
+      with the world's largest (and most authorititive) collection of formulas and
+      graphics about mathematical functions.
+    </p>
+<p>
+      100-decimal digit calculator
+      provided some spot values.
+    </p>
+<p>
+      http://www.adsciengineering.com/bpdcalc/
+      Binomial Probability Distribution Calculator.
+    </p>
+<h5>
+<a name="math_toolkit.refs.h2"></a>
+      <span class="phrase"><a name="math_toolkit.refs.other_libraries"></a></span><a class="link" href="refs.html#math_toolkit.refs.other_libraries">Other
+      Libraries</a>
+    </h5>
+<p>
+      Cephes library by Shephen
+      Moshier and his book:
+    </p>
+<p>
+      Methods and programs for mathematical functions, Stephen L B Moshier, Ellis
+      Horwood (1989) ISBN 0745802893 0470216093 provided inspiration.
+    </p>
+<p>
+      <a href="http://lib.stat.cmu.edu/general/cdflib" target="_top">CDFLIB Library of Fortran
+      Routines for Cumulative Distribution functions.</a>
+    </p>
+<p>
+      <a href="http://www.csit.fsu.edu/~burkardt/cpp_src/dcdflib/dcdflib.html" target="_top">DCFLIB
+      C++ version</a>.
+    </p>
+<p>
+      <a href="http://www.csit.fsu.edu/~burkardt/f_src/dcdflib/dcdflib.html" target="_top">DCDFLIB
+      C++ version</a> DCDFLIB is a library of C++ routines, using double precision
+      arithmetic, for evaluating cumulative probability density functions.
+    </p>
+<p>
+      http://www.softintegration.com/docs/package/chnagstat/
+    </p>
+<p>
+      NAG
+      libraries.
+    </p>
+<p>
+      MathCAD
+    </p>
+<p>
+      <a href="http://www.vni.com/products/imsl/jmsl/v30/api/com/imsl/stat/Cdf.html" target="_top">JMSL
+      Numerical Library</a> (Java).
+    </p>
+<p>
+      John F Hart, Computer Approximations, (1978) ISBN 0 088275 642-7.
+    </p>
+<p>
+      William J Cody, Software Manual for the Elementary Functions, Prentice-Hall
+      (1980) ISBN 0138220646.
+    </p>
+<p>
+      Nico Temme, Special Functions, An Introduction to the Classical Functions of
+      Mathematical Physics, Wiley, ISBN: 0471-11313-1 (1996) who also gave valueable
+      advice.
+    </p>
+<p>
+      <a href="http://www.cas.lancs.ac.uk/glossary_v1.1/prob.html#probdistn" target="_top">Statistics
+      Glossary</a>, Valerie Easton and John H. McColl.
+    </p>
+<p>
+      <span class="underline">_R</span> R Development Core Team (2010). R:
+      A language and environment for statistical computing. R Foundation for Statistical
+      Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org.
+    </p>
+<p>
+      For use of R, see:
+    </p>
+<p>
+      Jim Albert, Bayesian Computation with R, ISBN 978-0-387-71384-7.
+    </p>
+<p>
+      <a href="http://www.quantnet.com/cplusplus-statistical-distributions-boost" target="_top">C++
+      Statistical Distributions in Boost - QuantNetwork forum</a> discusses using
+      Boost.Math in finance.
+    </p>
+<p>
+      <a href="http://www.quantnet.com/boost-and-computational-finance/" target="_top">Quantnet
+      Boost and computational finance</a>. Robert Demming & Daniel J. Duffy,
+      Introduction to the C++ Boost Libraries - Volume I - Foundations and Volume
+      II ISBN 978-94-91028-01-4, Advanced Libraries and Applications, ISBN 978-94-91028-02-1
+      (to be published in 2011). discusses application of Boost.Math, especially
+      in finance.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="remez.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../status.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/relative_error.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/relative_error.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,113 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Relative Error</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="prev" href="implementation0.html" title="Additional Implementation Notes">
+<link rel="next" href="lanczos.html" title="The Lanczos Approximation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="implementation0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lanczos.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_relative_error">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.relative_error"></a><a class="link" href="relative_error.html" title="Relative Error">Relative Error</a>
+</h2></div></div></div>
+<p>
+      Given an actual value <span class="emphasis"><em>a</em></span> and a found value <span class="emphasis"><em>v</em></span>
+      the relative error can be calculated from:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/error2.png"></span>
+    </p>
+<p>
+      However the test programs in the library use the symmetrical form:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/error1.png"></span>
+    </p>
+<p>
+      which measures <span class="emphasis"><em>relative difference</em></span> and happens to be less
+      error prone in use since we don't have to worry which value is the "true"
+      result, and which is the experimental one. It guarantees to return a value
+      at least as large as the relative error.
+    </p>
+<p>
+      Special care needs to be taken when one value is zero: we could either take
+      the absolute error in this case (but that's cheating as the absolute error
+      is likely to be very small), or we could assign a value of either 1 or infinity
+      to the relative error in this special case. In the test cases for the special
+      functions in this library, everything below a threshold is regarded as "effectively
+      zero", otherwise the relative error is assigned the value of 1 if only
+      one of the terms is zero. The threshold is currently set at <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><>::</span><span class="identifier">min</span><span class="special">()</span></code>: in other words all denormalised numbers
+      are regarded as a zero.
+    </p>
+<p>
+      All the test programs calculate <span class="emphasis"><em>quantized relative error</em></span>,
+      whereas the graphs in this manual are produced with the <span class="emphasis"><em>actual error</em></span>.
+      The difference is as follows: in the test programs, the test data is rounded
+      to the target real type under test when the program is compiled, so the error
+      observed will then be a whole number of <span class="emphasis"><em>units in the last place</em></span>
+      either rounded up from the actual error, or rounded down (possibly to zero).
+      In contrast the <span class="emphasis"><em>true error</em></span> is obtained by extending the
+      precision of the calculated value, and then comparing to the actual value:
+      in this case the calculated error may be some fraction of <span class="emphasis"><em>units in
+      the last place</em></span>.
+    </p>
+<p>
+      Note that throughout this manual and the test programs the relative error is
+      usually quoted in units of epsilon. However, remember that <span class="emphasis"><em>units
+      in the last place</em></span> more accurately reflect the number of contaminated
+      digits, and that relative error can <span class="emphasis"><em>"wobble"</em></span>
+      by a factor of 2 compared to <span class="emphasis"><em>units in the last place</em></span>.
+      In other words: two implementations of the same function, whose maximum relative
+      errors differ by a factor of 2, can actually be accurate to the same number
+      of binary digits. You have been warned!
+    </p>
+<h5>
+<a name="math_toolkit.relative_error.h0"></a>
+      <span class="phrase"><a name="math_toolkit.relative_error.zero_error"></a></span><a class="link" href="relative_error.html#math_toolkit.relative_error.zero_error">The
+      Impossibility of Zero Error</a>
+    </h5>
+<p>
+      For many of the functions in this library, it is assumed that the error is
+      "effectively zero" if the computation can be done with a number of
+      guard digits. However it should be remembered that if the result is a <span class="emphasis"><em>transcendental
+      number</em></span> then as a point of principle we can never be sure that the
+      result is accurate to more than 1 ulp. This is an example of what http://en.wikipedia.org/wiki/William_Kahan
+      called http://en.wikipedia.org/wiki/Rounding#The_table-maker.27s_dilemma:
+      consider what happens if the first guard digit is a one, and the remaining
+      guard digits are all zero. Do we have a tie or not? Since the only thing we
+      can tell about a transcendental number is that its digits have no particular
+      pattern, we can never tell if we have a tie, no matter how many guard digits
+      we have. Therefore, we can never be completely sure that the result has been
+      rounded in the right direction. Of course, transcendental numbers that just
+      happen to be a tie - for however many guard digits we have - are extremely
+      rare, and get rarer the more guard digits we have, but even so....
+    </p>
+<p>
+      Refer to the classic text <a href="http://docs.sun.com/source/806-3568/ncg_goldberg.html" target="_top">What
+      Every Computer Scientist Should Know About Floating-Point Arithmetic</a>
+      for more information.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="implementation0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lanczos.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/remez.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/remez.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,528 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Remez Method</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../backgrounders.html" title="Chapter 15. Backgrounders">
+<link rel="prev" href="lanczos.html" title="The Lanczos Approximation">
+<link rel="next" href="refs.html" title="References">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="lanczos.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="refs.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_remez">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.remez"></a><a class="link" href="remez.html" title="The Remez Method">The Remez Method</a>
+</h2></div></div></div>
+<p>
+      The Remez algorithm
+      is a methodology for locating the minimax rational approximation to a function.
+      This short article gives a brief overview of the method, but it should not
+      be regarded as a thorough theoretical treatment, for that you should consult
+      your favorite textbook.
+    </p>
+<p>
+      Imagine that you want to approximate some function f(x) by way of a rational
+      function R(x), where R(x) may be either a polynomial P(x) or a ratio of two
+      polynomials P(x)/Q(x) (a rational function). Initially we'll concentrate on
+      the polynomial case, as it's by far the easier to deal with, later we'll extend
+      to the full rational function case.
+    </p>
+<p>
+      We want to find the "best" rational approximation, where "best"
+      is defined to be the approximation that has the least deviation from f(x).
+      We can measure the deviation by way of an error function:
+    </p>
+<p>
+      E<sub>abs</sub>(x) = f(x) - R(x)
+    </p>
+<p>
+      which is expressed in terms of absolute error, but we can equally use relative
+      error:
+    </p>
+<p>
+      E<sub>rel</sub>(x) = (f(x) - R(x)) / |f(x)|
+    </p>
+<p>
+      And indeed in general we can scale the error function in any way we want, it
+      makes no difference to the maths, although the two forms above cover almost
+      every practical case that you're likely to encounter.
+    </p>
+<p>
+      The minimax rational function R(x) is then defined to be the function that
+      yields the smallest maximal value of the error function. Chebyshev showed that
+      there is a unique minimax solution for R(x) that has the following properties:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          If R(x) is a polynomial of degree N, then there are N+2 unknowns: the N+1
+          coefficients of the polynomial, and maximal value of the error function.
+        </li>
+<li class="listitem">
+          The error function has N+1 roots, and N+2 extrema (minima and maxima).
+        </li>
+<li class="listitem">
+          The extrema alternate in sign, and all have the same magnitude.
+        </li>
+</ul></div>
+<p>
+      That means that if we know the location of the extrema of the error function
+      then we can write N+2 simultaneous equations:
+    </p>
+<p>
+      R(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+    </p>
+<p>
+      where E is the maximal error term, and x<sub>i</sub> are the abscissa values of the N+2
+      extrema of the error function. It is then trivial to solve the simultaneous
+      equations to obtain the polynomial coefficients and the error term.
+    </p>
+<p>
+      <span class="emphasis"><em>Unfortunately we don't know where the extrema of the error function
+      are located!</em></span>
+    </p>
+<h5>
+<a name="math_toolkit.remez.h0"></a>
+      <span class="phrase"><a name="math_toolkit.remez.the_remez_method"></a></span><a class="link" href="remez.html#math_toolkit.remez.the_remez_method">The
+      Remez Method</a>
+    </h5>
+<p>
+      The Remez method is an iterative technique which, given a broad range of assumptions,
+      will converge on the extrema of the error function, and therefore the minimax
+      solution.
+    </p>
+<p>
+      In the following discussion we'll use a concrete example to illustrate the
+      Remez method: an approximation to the function e<sup>x</sup>   over the range [-1, 1].
+    </p>
+<p>
+      Before we can begin the Remez method, we must obtain an initial value for the
+      location of the extrema of the error function. We could "guess" these,
+      but a much closer first approximation can be obtained by first constructing
+      an interpolated polynomial approximation to f(x).
+    </p>
+<p>
+      In order to obtain the N+1 coefficients of the interpolated polynomial we need
+      N+1 points (x<sub>0</sub>...x<sub>N</sub>): with our interpolated form passing through each of those
+      points that yields N+1 simultaneous equations:
+    </p>
+<p>
+      f(x<sub>i</sub>) = P(x<sub>i</sub>) = c<sub>0</sub> + c<sub>1</sub>x<sub>i</sub> ... + c<sub>N</sub>x<sub>i</sub><sup>N</sup>
+    </p>
+<p>
+      Which can be solved for the coefficients c<sub>0</sub>...c<sub>N</sub> in P(x).
+    </p>
+<p>
+      Obviously this is not a minimax solution, indeed our only guarantee is that
+      f(x) and P(x) touch at N+1 locations, away from those points the error may
+      be arbitrarily large. However, we would clearly like this initial approximation
+      to be as close to f(x) as possible, and it turns out that using the zeros of
+      an orthogonal polynomial as the initial interpolation points is a good choice.
+      In our example we'll use the zeros of a Chebyshev polynomial as these are particularly
+      easy to calculate, interpolating for a polynomial of degree 4, and measuring
+      <span class="emphasis"><em>relative error</em></span> we get the following error function:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/remez-2.png"></span>
+    </p>
+<p>
+      Which has a peak relative error of 1.2x10<sup>-3</sup>.
+    </p>
+<p>
+      While this is a pretty good approximation already, judging by the shape of
+      the error function we can clearly do better. Before starting on the Remez method
+      propper, we have one more step to perform: locate all the extrema of the error
+      function, and store these locations as our initial <span class="emphasis"><em>Chebyshev control
+      points</em></span>.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+        In the simple case of a polynomial approximation, by interpolating through
+        the roots of a Chebyshev polynomial we have in fact created a <span class="emphasis"><em>Chebyshev
+        approximation</em></span> to the function: in terms of <span class="emphasis"><em>absolute
+        error</em></span> this is the best a priori choice for the interpolated form
+        we can achieve, and typically is very close to the minimax solution.
+      </p>
+<p>
+        However, if we want to optimise for <span class="emphasis"><em>relative error</em></span>,
+        or if the approximation is a rational function, then the initial Chebyshev
+        solution can be quite far from the ideal minimax solution.
+      </p>
+<p>
+        A more technical discussion of the theory involved can be found in this
+        <a href="http://math.fullerton.edu/mathews/n2003/ChebyshevPolyMod.html" target="_top">online
+        course</a>.
+      </p>
+</td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.remez.h1"></a>
+      <span class="phrase"><a name="math_toolkit.remez.remez_step_1"></a></span><a class="link" href="remez.html#math_toolkit.remez.remez_step_1">Remez
+      Step 1</a>
+    </h5>
+<p>
+      The first step in the Remez method, given our current set of N+2 Chebyshev
+      control points x<sub>i</sub>, is to solve the N+2 simultaneous equations:
+    </p>
+<p>
+      P(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+    </p>
+<p>
+      To obtain the error term E, and the coefficients of the polynomial P(x).
+    </p>
+<p>
+      This gives us a new approximation to f(x) that has the same error <span class="emphasis"><em>E</em></span>
+      at each of the control points, and whose error function <span class="emphasis"><em>alternates
+      in sign</em></span> at the control points. This is still not necessarily the
+      minimax solution though: since the control points may not be at the extrema
+      of the error function. After this first step here's what our approximation's
+      error function looks like:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/remez-3.png"></span>
+    </p>
+<p>
+      Clearly this is still not the minimax solution since the control points are
+      not located at the extrema, but the maximum relative error has now dropped
+      to 5.6x10<sup>-4</sup>.
+    </p>
+<h5>
+<a name="math_toolkit.remez.h2"></a>
+      <span class="phrase"><a name="math_toolkit.remez.remez_step_2"></a></span><a class="link" href="remez.html#math_toolkit.remez.remez_step_2">Remez
+      Step 2</a>
+    </h5>
+<p>
+      The second step is to locate the extrema of the new approximation, which we
+      do in two stages: first, since the error function changes sign at each control
+      point, we must have N+1 roots of the error function located between each pair
+      of N+2 control points. Once these roots are found by standard root finding
+      techniques, we know that N extrema are bracketed between each pair of roots,
+      plus two more between the endpoints of the range and the first and last roots.
+      The N+2 extrema can then be found using standard function minimisation techniques.
+    </p>
+<p>
+      We now have a choice: multi-point exchange, or single point exchange.
+    </p>
+<p>
+      In single point exchange, we move the control point nearest to the largest
+      extrema to the absissa value of the extrema.
+    </p>
+<p>
+      In multi-point exchange we swap all the current control points, for the locations
+      of the extrema.
+    </p>
+<p>
+      In our example we perform multi-point exchange.
+    </p>
+<h5>
+<a name="math_toolkit.remez.h3"></a>
+      <span class="phrase"><a name="math_toolkit.remez.iteration"></a></span><a class="link" href="remez.html#math_toolkit.remez.iteration">Iteration</a>
+    </h5>
+<p>
+      The Remez method then performs steps 1 and 2 above iteratively until the control
+      points are located at the extrema of the error function: this is then the minimax
+      solution.
+    </p>
+<p>
+      For our current example, two more iterations converges on a minimax solution
+      with a peak relative error of 5x10<sup>-4</sup> and an error function that looks like:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/remez-4.png"></span>
+    </p>
+<h5>
+<a name="math_toolkit.remez.h4"></a>
+      <span class="phrase"><a name="math_toolkit.remez.rational_approximations"></a></span><a class="link" href="remez.html#math_toolkit.remez.rational_approximations">Rational
+      Approximations</a>
+    </h5>
+<p>
+      If we wish to extend the Remez method to a rational approximation of the form
+    </p>
+<p>
+      f(x) = R(x) = P(x) / Q(x)
+    </p>
+<p>
+      where P(x) and Q(x) are polynomials, then we proceed as before, except that
+      now we have N+M+2 unknowns if P(x) is of order N and Q(x) is of order M. This
+      assumes that Q(x) is normalised so that its leading coefficient is 1, giving
+      N+M+1 polynomial coefficients in total, plus the error term E.
+    </p>
+<p>
+      The simultaneous equations to be solved are now:
+    </p>
+<p>
+      P(x<sub>i</sub>) / Q(x<sub>i</sub>) + (-1)<sup>i</sup>E = f(x<sub>i</sub>)
+    </p>
+<p>
+      Evaluated at the N+M+2 control points x<sub>i</sub>.
+    </p>
+<p>
+      Unfortunately these equations are non-linear in the error term E: we can only
+      solve them if we know E, and yet E is one of the unknowns!
+    </p>
+<p>
+      The method usually adopted to solve these equations is an iterative one: we
+      guess the value of E, solve the equations to obtain a new value for E (as well
+      as the polynomial coefficients), then use the new value of E as the next guess.
+      The method is repeated until E converges on a stable value.
+    </p>
+<p>
+      These complications extend the running time required for the development of
+      rational approximations quite considerably. It is often desirable to obtain
+      a rational rather than polynomial approximation none the less: rational approximations
+      will often match more difficult to approximate functions, to greater accuracy,
+      and with greater efficiency, than their polynomial alternatives. For example,
+      if we takes our previous example of an approximation to e<sup>x</sup>, we obtained 5x10<sup>-4</sup> accuracy
+      with an order 4 polynomial. If we move two of the unknowns into the denominator
+      to give a pair of order 2 polynomials, and re-minimise, then the peak relative
+      error drops to 8.7x10<sup>-5</sup>. That's a 5 fold increase in accuracy, for the same
+      number of terms overall.
+    </p>
+<h5>
+<a name="math_toolkit.remez.h5"></a>
+      <span class="phrase"><a name="math_toolkit.remez.practical_considerations"></a></span><a class="link" href="remez.html#math_toolkit.remez.practical_considerations">Practical
+      Considerations</a>
+    </h5>
+<p>
+      Most treatises on approximation theory stop at this point. However, from a
+      practical point of view, most of the work involves finding the right approximating
+      form, and then persuading the Remez method to converge on a solution.
+    </p>
+<p>
+      So far we have used a direct approximation:
+    </p>
+<p>
+      f(x) = R(x)
+    </p>
+<p>
+      But this will converge to a useful approximation only if f(x) is smooth. In
+      addition round-off errors when evaluating the rational form mean that this
+      will never get closer than within a few epsilon of machine precision. Therefore
+      this form of direct approximation is often reserved for situations where we
+      want efficiency, rather than accuracy.
+    </p>
+<p>
+      The first step in improving the situation is generally to split f(x) into a
+      dominant part that we can compute accurately by another method, and a slowly
+      changing remainder which can be approximated by a rational approximation. We
+      might be tempted to write:
+    </p>
+<p>
+      f(x) = g(x) + R(x)
+    </p>
+<p>
+      where g(x) is the dominant part of f(x), but if f(x)/g(x) is approximately
+      constant over the interval of interest then:
+    </p>
+<p>
+      f(x) = g(x)(c + R(x))
+    </p>
+<p>
+      Will yield a much better solution: here <span class="emphasis"><em>c</em></span> is a constant
+      that is the approximate value of f(x)/g(x) and R(x) is typically tiny compared
+      to <span class="emphasis"><em>c</em></span>. In this situation if R(x) is optimised for absolute
+      error, then as long as its error is small compared to the constant <span class="emphasis"><em>c</em></span>,
+      that error will effectively get wiped out when R(x) is added to <span class="emphasis"><em>c</em></span>.
+    </p>
+<p>
+      The difficult part is obviously finding the right g(x) to extract from your
+      function: often the asymptotic behaviour of the function will give a clue,
+      so for example the function <a class="link" href="sf_erf/error_function.html" title="Error Functions">erfc</a>
+      becomes proportional to e<sup>-x<sup>2</sup></sup>/x as x becomes large. Therefore using:
+    </p>
+<p>
+      erfc(z) = (C + R(x)) e<sup>-x<sup>2</sup></sup>/x
+    </p>
+<p>
+      as the approximating form seems like an obvious thing to try, and does indeed
+      yield a useful approximation.
+    </p>
+<p>
+      However, the difficulty then becomes one of converging the minimax solution.
+      Unfortunately, it is known that for some functions the Remez method can lead
+      to divergent behaviour, even when the initial starting approximation is quite
+      good. Furthermore, it is not uncommon for the solution obtained in the first
+      Remez step above to be a bad one: the equations to be solved are generally
+      "stiff", often very close to being singular, and assuming a solution
+      is found at all, round-off errors and a rapidly changing error function, can
+      lead to a situation where the error function does not in fact change sign at
+      each control point as required. If this occurs, it is fatal to the Remez method.
+      It is also possible to obtain solutions that are perfectly valid mathematically,
+      but which are quite useless computationally: either because there is an unavoidable
+      amount of roundoff error in the computation of the rational function, or because
+      the denominator has one or more roots over the interval of the approximation.
+      In the latter case while the approximation may have the correct limiting value
+      at the roots, the approximation is nonetheless useless.
+    </p>
+<p>
+      Assuming that the approximation does not have any fatal errors, and that the
+      only issue is converging adequately on the minimax solution, the aim is to
+      get as close as possible to the minimax solution before beginning the Remez
+      method. Using the zeros of a Chebyshev polynomial for the initial interpolation
+      is a good start, but may not be ideal when dealing with relative errors and/or
+      rational (rather than polynomial) approximations. One approach is to skew the
+      initial interpolation points to one end: for example if we raise the roots
+      of the Chebyshev polynomial to a positive power greater than 1 then the roots
+      will be skewed towards the middle of the [-1,1] interval, while a positive
+      power less than one will skew them towards either end. More usefully, if we
+      initially rescale the points over [0,1] and then raise to a positive power,
+      we can skew them to the left or right. Returning to our example of e<sup>x</sup>   over [-1,1],
+      the initial interpolated form was some way from the minimax solution:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/remez-2.png"></span>
+    </p>
+<p>
+      However, if we first skew the interpolation points to the left (rescale them
+      to [0, 1], raise to the power 1.3, and then rescale back to [-1,1]) we reduce
+      the error from 1.3x10<sup>-3</sup>  to 6x10<sup>-4</sup>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../graphs/remez-5.png"></span>
+    </p>
+<p>
+      It's clearly still not ideal, but it is only a few percent away from our desired
+      minimax solution (5x10<sup>-4</sup>).
+    </p>
+<h5>
+<a name="math_toolkit.remez.h6"></a>
+      <span class="phrase"><a name="math_toolkit.remez.remez_method_checklist"></a></span><a class="link" href="remez.html#math_toolkit.remez.remez_method_checklist">Remez
+      Method Checklist</a>
+    </h5>
+<p>
+      The following lists some of the things to check if the Remez method goes wrong,
+      it is by no means an exhaustive list, but is provided in the hopes that it
+      will prove useful.
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Is the function smooth enough? Can it be better separated into a rapidly
+          changing part, and an asymptotic part?
+        </li>
+<li class="listitem">
+          Does the function being approximated have any "blips" in it?
+          Check for problems as the function changes computation method, or if a
+          root, or an infinity has been divided out. The telltale sign is if there
+          is a narrow region where the Remez method will not converge.
+        </li>
+<li class="listitem">
+          Check you have enough accuracy in your calculations: remember that the
+          Remez method works on the difference between the approximation and the
+          function being approximated: so you must have more digits of precision
+          available than the precision of the approximation being constructed. So
+          for example at double precision, you shouldn't expect to be able to get
+          better than a float precision approximation.
+        </li>
+<li class="listitem">
+          Try skewing the initial interpolated approximation to minimise the error
+          before you begin the Remez steps.
+        </li>
+<li class="listitem">
+          If the approximation won't converge or is ill-conditioned from one starting
+          location, try starting from a different location.
+        </li>
+<li class="listitem">
+          If a rational function won't converge, one can minimise a polynomial (which
+          presents no problems), then rotate one term from the numerator to the denominator
+          and minimise again. In theory one can continue moving terms one at a time
+          from numerator to denominator, and then re-minimising, retaining the last
+          set of control points at each stage.
+        </li>
+<li class="listitem">
+          Try using a smaller interval. It may also be possible to optimise over
+          one (small) interval, rescale the control points over a larger interval,
+          and then re-minimise.
+        </li>
+<li class="listitem">
+          Keep absissa values small: use a change of variable to keep the abscissa
+          over, say [0, b], for some smallish value <span class="emphasis"><em>b</em></span>.
+        </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.remez.h7"></a>
+      <span class="phrase"><a name="math_toolkit.remez.references"></a></span><a class="link" href="remez.html#math_toolkit.remez.references">References</a>
+    </h5>
+<p>
+      The original references for the Remez Method and it's extension to rational
+      functions are unfortunately in Russian:
+    </p>
+<p>
+      Remez, E.Ya., <span class="emphasis"><em>Fundamentals of numerical methods for Chebyshev approximations</em></span>,
+      "Naukova Dumka", Kiev, 1969.
+    </p>
+<p>
+      Remez, E.Ya., Gavrilyuk, V.T., <span class="emphasis"><em>Computer development of certain approaches
+      to the approximate construction of solutions of Chebyshev problems nonlinearly
+      depending on parameters</em></span>, Ukr. Mat. Zh. 12 (1960), 324-338.
+    </p>
+<p>
+      Gavrilyuk, V.T., <span class="emphasis"><em>Generalization of the first polynomial algorithm
+      of E.Ya.Remez for the problem of constructing rational-fractional Chebyshev
+      approximations</em></span>, Ukr. Mat. Zh. 16 (1961), 575-585.
+    </p>
+<p>
+      Some English language sources include:
+    </p>
+<p>
+      Fraser, W., Hart, J.F., <span class="emphasis"><em>On the computation of rational approximations
+      to continuous functions</em></span>, Comm. of the ACM 5 (1962), 401-403, 414.
+    </p>
+<p>
+      Ralston, A., <span class="emphasis"><em>Rational Chebyshev approximation by Remes' algorithms</em></span>,
+      Numer.Math. 7 (1965), no. 4, 322-330.
+    </p>
+<p>
+      A. Ralston, <span class="emphasis"><em>Rational Chebyshev approximation, Mathematical Methods
+      for Digital Computers v. 2</em></span> (Ralston A., Wilf H., eds.), Wiley, New
+      York, 1967, pp. 264-284.
+    </p>
+<p>
+      Hart, J.F. e.a., <span class="emphasis"><em>Computer approximations</em></span>, Wiley, New York
+      a.o., 1968.
+    </p>
+<p>
+      Cody, W.J., Fraser, W., Hart, J.F., <span class="emphasis"><em>Rational Chebyshev approximation
+      using linear equations</em></span>, Numer.Math. 12 (1968), 242-251.
+    </p>
+<p>
+      Cody, W.J., <span class="emphasis"><em>A survey of practical rational and polynomial approximation
+      of functions</em></span>, SIAM Review 12 (1970), no. 3, 400-423.
+    </p>
+<p>
+      Barrar, R.B., Loeb, H.J., <span class="emphasis"><em>On the Remez algorithm for non-linear families</em></span>,
+      Numer.Math. 15 (1970), 382-391.
+    </p>
+<p>
+      Dunham, Ch.B., <span class="emphasis"><em>Convergence of the Fraser-Hart algorithm for rational
+      Chebyshev approximation</em></span>, Math. Comp. 29 (1975), no. 132, 1078-1082.
+    </p>
+<p>
+      G. L. Litvinov, <span class="emphasis"><em>Approximate construction of rational approximations
+      and the effect of error autocorrection</em></span>, Russian Journal of Mathematical
+      Physics, vol.1, No. 3, 1994.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lanczos.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="refs.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/result_type.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/result_type.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,143 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calculation of the Type of the Result</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="namespaces.html" title="Namespaces">
+<link rel="next" href="error_handling.html" title="Error Handling">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="namespaces.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="error_handling.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_result_type">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.result_type"></a><a class="link" href="result_type.html" title="Calculation of the Type of the Result">Calculation of the Type of the
+    Result</a>
+</h2></div></div></div>
+<p>
+      The functions in this library are all overloaded to accept mixed floating point
+      (or mixed integer and floating point type) arguments. So for example:
+    </p>
+<pre class="programlisting"><span class="identifier">foo</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
+<span class="identifier">foo</span><span class="special">(</span><span class="number">1.0f</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
+<span class="identifier">foo</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2L</span><span class="special">);</span>
+</pre>
+<p>
+      etc, are all valid calls, as long as "foo" is a function taking two
+      floating-point arguments. But that leaves the question:
+    </p>
+<div class="sidebar">
+<div class="titlepage"></div>
+<p>
+      <span class="emphasis"><em>"Given a special function with N arguments of types T1, T2,
+      T3 ... TN, then what type is the result?"</em></span>
+    </p>
+</div>
+<p>
+      <span class="bold"><strong>If all the arguments are of the same (floating point)
+      type then the result is the same type as the arguments.</strong></span>
+    </p>
+<p>
+      Otherwise, the type of the result is computed using the following logic:
+    </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          Any arguments that are not template arguments are disregarded from further
+          analysis.
+        </li>
+<li class="listitem">
+          For each type in the argument list, if that type is an integer type then
+          it is treated as if it were of type double for the purposes of further
+          analysis.
+        </li>
+<li class="listitem">
+          If any of the arguments is a user-defined class type, then the result type
+          is the first such class type that is constructible from all of the other
+          argument types.
+        </li>
+<li class="listitem">
+          If any of the arguments is of type <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code>, then the result is of type
+          <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+        </li>
+<li class="listitem">
+          If any of the arguments is of type <code class="computeroutput"><span class="keyword">double</span></code>,
+          then the result is of type <code class="computeroutput"><span class="keyword">double</span></code>.
+        </li>
+<li class="listitem">
+          Otherwise the result is of type <code class="computeroutput"><span class="keyword">float</span></code>.
+        </li>
+</ol></div>
+<p>
+      For example:
+    </p>
+<pre class="programlisting"><span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0</span><span class="special">);</span>
+</pre>
+<p>
+      Returns a <code class="computeroutput"><span class="keyword">double</span></code> result, as does:
+    </p>
+<pre class="programlisting"><span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+</pre>
+<p>
+      as in this case the integer first argument is treated as a <code class="computeroutput"><span class="keyword">double</span></code>
+      and takes precedence over the <code class="computeroutput"><span class="keyword">float</span></code>
+      second argument. To get a <code class="computeroutput"><span class="keyword">float</span></code>
+      result we would need all the arguments to be of type float:
+    </p>
+<pre class="programlisting"><span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">2.0f</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+</pre>
+<p>
+      When one or more of the arguments is not a template argument then it doesn't
+      effect the return type at all, for example:
+    </p>
+<pre class="programlisting"><span class="identifier">sph_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+</pre>
+<p>
+      returns a <code class="computeroutput"><span class="keyword">float</span></code>, since the first
+      argument is not a template argument and so doesn't effect the result: without
+      this rule functions that take explicitly integer arguments could never return
+      <code class="computeroutput"><span class="keyword">float</span></code>.
+    </p>
+<p>
+      And for user-defined types, all of the following return an <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> result:
+    </p>
+<pre class="programlisting"><span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">2</span><span class="special">));</span>
+
+<span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">2</span><span class="special">),</span> <span class="number">3</span><span class="special">);</span>
+
+<span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">quad_float</span><span class="special">(</span><span class="number">2</span><span class="special">),</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">3</span><span class="special">));</span>
+</pre>
+<p>
+      In the last case, <code class="computeroutput"><span class="identifier">quad_float</span></code>
+      is convertible to <code class="computeroutput"><span class="identifier">RR</span></code>, but not
+      vice-versa, so the result will be an <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code>. Note
+      that this assumes that you are using a <a class="link" href="high_precision/use_ntl.html" title="Using NTL Library">patched
+      NTL library</a>.
+    </p>
+<p>
+      These rules are chosen to be compatible with the behaviour of <span class="emphasis"><em>ISO/IEC
+      9899:1999 Programming languages - C</em></span> and with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Draft
+      Technical Report on C++ Library Extensions, 2005-06-24, section 5.2.1, paragraph
+      5</a>.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="namespaces.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="error_handling.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/rounding.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/rounding.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rounding Truncation and Integer Conversion</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="prev" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="next" href="rounding/round.html" title="Rounding Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../utils.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rounding/round.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_rounding">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.rounding"></a><a class="link" href="rounding.html" title="Rounding Truncation and Integer Conversion">Rounding Truncation and Integer
+    Conversion</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Rounding Functions</span></dt>
+<dt><span class="section">Truncation Functions</span></dt>
+<dt><span class="section"><a href="rounding/modf.html">Integer and Fractional Part
+      Splitting (modf)</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../utils.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rounding/round.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/rounding/modf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/rounding/modf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Integer and Fractional Part Splitting (modf)</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../rounding.html" title="Rounding Truncation and Integer Conversion">
+<link rel="prev" href="trunc.html" title="Truncation Functions">
+<link rel="next" href="../fpclass.html" title="Floating-Point Classification: Infinities and NaNs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="trunc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../fpclass.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_rounding_modf">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.rounding.modf"></a><a class="link" href="modf.html" title="Integer and Fractional Part Splitting (modf)">Integer and Fractional Part
+      Splitting (modf)</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">modf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">int</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">int</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">long</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">long</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">long</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">modf</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">long</span><span class="special">*</span> <span class="identifier">ipart</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+</pre>
+<p>
+        The <code class="computeroutput"><span class="identifier">modf</span></code> functions store
+        the integer part of <span class="emphasis"><em>v</em></span> in <code class="computeroutput"><span class="special">*</span><span class="identifier">ipart</span></code> and return the fractional part of
+        <span class="emphasis"><em>v</em></span>. The sign of the integer and fractional parts are
+        the same as the sign of <span class="emphasis"><em>v</em></span>.
+      </p>
+<p>
+        If the argument <span class="emphasis"><em>v</em></span> is either non-finite or else outside
+        the range of the result type, then returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.rounding_error">rounding_error</a>:
+        by default this throws an instance of boost::math::rounding_error.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trunc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../fpclass.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/rounding/round.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/rounding/round.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rounding Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../rounding.html" title="Rounding Truncation and Integer Conversion">
+<link rel="prev" href="../rounding.html" title="Rounding Truncation and Integer Conversion">
+<link rel="next" href="trunc.html" title="Truncation Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../rounding.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="trunc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_rounding_round">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.rounding.round"></a><a class="link" href="round.html" title="Rounding Functions">Rounding Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">round</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">iround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">iround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+</pre>
+<p>
+        These functions return the closest integer to the argument <span class="emphasis"><em>v</em></span>.
+      </p>
+<p>
+        Halfway cases are rounded away from zero, regardless of the current rounding
+        direction.
+      </p>
+<p>
+        If the argument <span class="emphasis"><em>v</em></span> is either non-finite or else outside
+        the range of the result type, then returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.rounding_error">rounding_error</a>:
+        by default this throws an instance of boost::math::rounding_error.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../rounding.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="trunc.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/rounding/trunc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/rounding/trunc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Truncation Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../rounding.html" title="Rounding Truncation and Integer Conversion">
+<link rel="prev" href="round.html" title="Rounding Functions">
+<link rel="next" href="modf.html" title="Integer and Fractional Part Splitting (modf)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="round.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="modf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_rounding_trunc">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.rounding.trunc"></a><a class="link" href="trunc.html" title="Truncation Functions">Truncation Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">trunc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></pre>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">itrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">itrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">long</span> <span class="identifier">ltrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">long</span> <span class="identifier">ltrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">lltrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">lltrunc</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&);</span>
+</pre>
+<p>
+        The trunc functions round their argument to the integer value, nearest to
+        but no larger in magnitude than the argument.
+      </p>
+<p>
+        For example <code class="computeroutput"><span class="identifier">itrunc</span><span class="special">(</span><span class="number">3.7</span><span class="special">)</span></code> would
+        return <code class="computeroutput"><span class="number">3</span></code> and <code class="computeroutput"><span class="identifier">ltrunc</span><span class="special">(-</span><span class="number">4.6</span><span class="special">)</span></code>
+        would return <code class="computeroutput"><span class="special">-</span><span class="number">4</span></code>.
+      </p>
+<p>
+        If the argument <span class="emphasis"><em>v</em></span> is either non-finite or else outside
+        the range of the result type, then returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.rounding_error">rounding_error</a>:
+        by default this throws an instance of boost::math::rounding_error.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="round.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="modf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/run_time.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/run_time.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Run-time GCD & LCM Determination</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="lcm_function_object.html" title="LCM Function Object">
+<link rel="next" href="compile_time.html" title="Compile time GCD and LCM determination">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="lcm_function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="compile_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_run_time">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.run_time"></a><a class="link" href="run_time.html" title="Run-time GCD & LCM Determination">Run-time GCD & LCM Determination</a>
+</h2></div></div></div>
+<p>
+      <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+<span class="identifier">IntegerType</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+<span class="identifier">IntegerType</span>  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">);</span>
+</pre>
+<p>
+      The boost::math::gcd function template returns the greatest common (nonnegative)
+      divisor of the two integers passed to it. The boost::math::lcm function template
+      returns the least common (nonnegative) multiple of the two integers passed
+      to it. The function templates are parameterized on the function arguments'
+      IntegerType, which is also the return type. Internally, these function templates
+      use an object of the corresponding version of the gcd_evaluator and lcm_evaluator
+      class templates, respectively.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lcm_function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="compile_time.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_beta.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_beta.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Beta Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="factorials/sf_binomial.html" title="Binomial Coefficients">
+<link rel="next" href="sf_beta/beta_function.html" title="Beta">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="factorials/sf_binomial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_beta/beta_function.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_beta">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sf_beta"></a><a class="link" href="sf_beta.html" title="Beta Functions">Beta Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Beta</span></dt>
+<dt><span class="section"><a href="sf_beta/ibeta_function.html">Incomplete Beta
+      Functions</a></span></dt>
+<dt><span class="section"><a href="sf_beta/ibeta_inv_function.html">The Incomplete
+      Beta Function Inverses</a></span></dt>
+<dt><span class="section"><a href="sf_beta/beta_derivative.html">Derivative of the
+      Incomplete Beta Function</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="factorials/sf_binomial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_beta/beta_function.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_derivative.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_derivative.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Derivative of the Incomplete Beta Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_beta.html" title="Beta Functions">
+<link rel="prev" href="ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">
+<link rel="next" href="../sf_erf.html" title="Error Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ibeta_inv_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_erf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_beta_beta_derivative">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_beta.beta_derivative"></a><a class="link" href="beta_derivative.html" title="Derivative of the Incomplete Beta Function">Derivative of the
+      Incomplete Beta Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_beta.beta_derivative.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_derivative.synopsis"></a></span><a class="link" href="beta_derivative.html#math_toolkit.sf_beta.beta_derivative.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_beta.beta_derivative.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_derivative.description"></a></span><a class="link" href="beta_derivative.html#math_toolkit.sf_beta.beta_derivative.description">Description</a>
+      </h5>
+<p>
+        This function finds some uses in statistical distributions: it computes the
+        partial derivative with respect to <span class="emphasis"><em>x</em></span> of the incomplete
+        beta function <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/derivative2.png"></span>
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1, T2 and T3 are different
+        types.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.beta_derivative.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_derivative.accuracy"></a></span><a class="link" href="beta_derivative.html#math_toolkit.sf_beta.beta_derivative.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Almost identical to the incomplete beta function <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.beta_derivative.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_derivative.implementation"></a></span><a class="link" href="beta_derivative.html#math_toolkit.sf_beta.beta_derivative.implementation">Implementation</a>
+      </h5>
+<p>
+        This function just expose some of the internals of the incomplete beta function
+        <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>: refer to
+        the documentation for that function for more information.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ibeta_inv_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_erf.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/beta_function.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,317 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Beta</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_beta.html" title="Beta Functions">
+<link rel="prev" href="../sf_beta.html" title="Beta Functions">
+<link rel="next" href="ibeta_function.html" title="Incomplete Beta Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_beta.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_beta_beta_function">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_beta.beta_function"></a><a class="link" href="beta_function.html" title="Beta">Beta</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_beta.beta_function.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_function.synopsis"></a></span><a class="link" href="beta_function.html#math_toolkit.sf_beta.beta_function.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_beta.beta_function.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_function.description"></a></span><a class="link" href="beta_function.html#math_toolkit.sf_beta.beta_function.description">Description</a>
+      </h5>
+<p>
+        The beta function is defined by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/beta.png" align="middle"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        There are effectively two versions of this function internally: a fully generic
+        version that is slow, but reasonably accurate, and a much more efficient
+        approximation that is used where the number of digits in the significand
+        of T correspond to a certain <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>. In practice any built-in floating-point type you will
+        encounter has an appropriate <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> defined for it. It is also possible, given enough machine
+        time, to generate further <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>'s
+        using the program libs/math/tools/lanczos_generator.cpp.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.beta_function.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_function.accuracy"></a></span><a class="link" href="beta_function.html#math_toolkit.sf_beta.beta_function.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows peak errors for various domains of input arguments,
+        along with comparisons to the GSL-1.9
+        and Cephes libraries.
+        Note that only results for the widest floating point type on the system are
+        given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_beta.beta_function.peak_errors_in_the_beta_function"></a><p class="title"><b>Table 3.7. Peak Errors In the Beta Function</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Beta Function">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0.4 < a,b < 100
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  1e-6 < a,b < 36
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=99 Mean=22
+                </p>
+                <p>
+                  (GSL Peak=1178 Mean=238)
+                </p>
+                <p>
+                  (Cephes=1612)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10.7 Mean=2.6
+                </p>
+                <p>
+                  (GSL Peak=12 Mean=2.0)
+                </p>
+                <p>
+                  (Cephes=174)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA32, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=112.1 Mean=26.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=15.8 Mean=3.6
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=61.4 Mean=19.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=12.2 Mean=3.6
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=42.03 Mean=13.94
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=9.8 Mean=3.1
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that the worst errors occur when a or b are large, and that when this
+        is the case the result is very close to zero, so absolute errors will be
+        very small.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.beta_function.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_function.testing"></a></span><a class="link" href="beta_function.html#math_toolkit.sf_beta.beta_function.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot tests of exact values, and randomly generated test data
+        are used: the test data was computed using NTL::RR
+        at 1000-bit precision.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.beta_function.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.beta_function.implementation"></a></span><a class="link" href="beta_function.html#math_toolkit.sf_beta.beta_function.implementation">Implementation</a>
+      </h5>
+<p>
+        Traditional methods of evaluating the beta function either involve evaluating
+        the gamma functions directly, or taking logarithms and then exponentiating
+        the result. However, the former is prone to overflows for even very modest
+        arguments, while the latter is prone to cancellation errors. As an alternative,
+        if we regard the gamma function as a white-box containing the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>, then we can combine the power terms:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta2.png"></span>
+      </p>
+<p>
+        which is almost the ideal solution, however almost all of the error occurs
+        in evaluating the power terms when <span class="emphasis"><em>a</em></span> or <span class="emphasis"><em>b</em></span>
+        are large. If we assume that <span class="emphasis"><em>a > b</em></span> then the larger
+        of the two power terms can be reduced by a factor of <span class="emphasis"><em>b</em></span>,
+        which immediately cuts the maximum error in half:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta3.png"></span>
+      </p>
+<p>
+        This may not be the final solution, but it is very competitive compared to
+        other implementation methods.
+      </p>
+<p>
+        The generic implementation - where no <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> approximation is available - is implemented in a very
+        similar way to the generic version of the gamma function. Again in order
+        to avoid numerical overflow the power terms that prefix the series and continued
+        fraction parts are collected together into:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta8.png"></span>
+      </p>
+<p>
+        where la, lb and lc are the integration limits used for a, b, and a+b.
+      </p>
+<p>
+        There are a few special cases worth mentioning:
+      </p>
+<p>
+        When <span class="emphasis"><em>a</em></span> or <span class="emphasis"><em>b</em></span> are less than one,
+        we can use the recurrence relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta4.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta5.png"></span>
+      </p>
+<p>
+        to move to a more favorable region where they are both greater than 1.
+      </p>
+<p>
+        In addition:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/beta7.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_beta.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_function.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,969 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Incomplete Beta Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_beta.html" title="Beta Functions">
+<link rel="prev" href="beta_function.html" title="Beta">
+<link rel="next" href="ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="beta_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_inv_function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_beta_ibeta_function">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_beta.ibeta_function"></a><a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">Incomplete Beta
+      Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_function.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_function.synopsis"></a></span><a class="link" href="ibeta_function.html#math_toolkit.sf_beta.ibeta_function.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">betac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">betac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_function.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_function.description"></a></span><a class="link" href="ibeta_function.html#math_toolkit.sf_beta.ibeta_function.description">Description</a>
+      </h5>
+<p>
+        There are four <a href="http://en.wikipedia.org/wiki/Incomplete_beta_function" target="_top">incomplete
+        beta functions</a> : two are normalised versions (also known as <span class="emphasis"><em>regularized</em></span>
+        beta functions) that return values in the range [0, 1], and two are non-normalised
+        and return values in the range [0, <a class="link" href="beta_function.html" title="Beta">beta</a>(a,
+        b)]. Users interested in statistical applications should use the normalised
+        (or regularized
+        ) versions (ibeta and ibetac).
+      </p>
+<p>
+        All of these functions require <span class="emphasis"><em>0 <= x <= 1</em></span>.
+      </p>
+<p>
+        The normalized functions <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+        and <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">ibetac</a> require
+        <span class="emphasis"><em>a,b >= 0</em></span>, and in addition that not both <span class="emphasis"><em>a</em></span>
+        and <span class="emphasis"><em>b</em></span> are zero.
+      </p>
+<p>
+        The functions <a class="link" href="beta_function.html" title="Beta">beta</a>
+        and <a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">betac</a> require
+        <span class="emphasis"><em>a,b > 0</em></span>.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1, T2 and T3 are different
+        types.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the normalised incomplete beta function of a, b and x:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta3.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/ibeta.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the normalised complement of the incomplete beta function of a, b
+        and x:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta4.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the full (non-normalised) incomplete beta function of a, b and x:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta1.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">betac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">betac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the full (non-normalised) complement of the incomplete beta function
+        of a, b and x:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta2.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_function.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_function.accuracy"></a></span><a class="link" href="ibeta_function.html#math_toolkit.sf_beta.ibeta_function.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following tables give peak and mean relative errors in over various domains
+        of a, b and x, along with comparisons to the GSL-1.9
+        and Cephes libraries.
+        Note that only results for the widest floating-point type on the system are
+        given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<p>
+        Note that the results for 80 and 128-bit long doubles are noticeably higher
+        than for doubles: this is because the wider exponent range of these types
+        allow more extreme test cases to be tested. For example expected results
+        that are zero at double precision, may be finite but exceptionally small
+        with the wider exponent range of the long double types.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibeta_a_b"></a><p class="title"><b>Table 3.8. Errors In the Function ibeta(a,b,x)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function ibeta(a,b,x)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 10
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-5</sup> < a,b < 1x10<sup>5</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=42.3 Mean=2.9
+                </p>
+                <p>
+                  (GSL Peak=682 Mean=32.5)
+                </p>
+                <p>
+                  (Cephes Peak=42.7
+                  Mean=7.0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=108 Mean=16.6
+                </p>
+                <p>
+                  (GSL Peak=690 Mean=151)
+                </p>
+                <p>
+                  (Cephes Peak=1545
+                  Mean=218)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4x10<sup>3</sup>   Mean=203
+                </p>
+                <p>
+                  (GSL Peak~3x10<sup>5</sup>   Mean~2x10<sup>4</sup>  )
+                </p>
+                <p>
+                  (Cephes Peak~5x10<sup>5</sup>   Mean~2x10<sup>4</sup>  )
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=21.9 Mean=3.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=270.7 Mean=26.8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~5x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=15.4 Mean=3.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=112.9 Mean=14.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~5x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=20.9 Mean=2.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=88.1 Mean=14.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~2x10<sup>4</sup>   Mean=1x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_beta.ibeta_function.errors_in_the_function_ibetac_a_"></a><p class="title"><b>Table 3.9. Errors In the Function ibetac(a,b,x)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function ibetac(a,b,x)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 10
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-5</sup> < a,b < 1x10<sup>5</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=13.9 Mean=2.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=56.2 Mean=14
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3x10<sup>3</sup>   Mean=159
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=21.1 Mean=3.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=221.7 Mean=25.8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~9x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=10.6 Mean=2.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=73.9 Mean=11.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~9x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=9.9 Mean=2.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=117.7 Mean=15.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~3x10<sup>4</sup>   Mean=1x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_beta.ibeta_function.errors_in_the_function_beta_a_b_"></a><p class="title"><b>Table 3.10. Errors In the Function beta(a, b, x)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function beta(a, b, x)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 10
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-5</sup> < a,b < 1x10<sup>5</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=39 Mean=2.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=91 Mean=12.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=635 Mean=25
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=26 Mean=3.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=180.7 Mean=30.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~7x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=13 Mean=2.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=67.1 Mean=13.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~7x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=27.3 Mean=3.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=49.8 Mean=9.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~6x10<sup>4</sup>   Mean=3x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_beta.ibeta_function.errors_in_the_function_betac_a_b"></a><p class="title"><b>Table 3.11. Errors In the Function betac(a,b,x)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function betac(a,b,x)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 10
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  0 < a,b < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-5</sup> < a,b < 1x10<sup>5</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0 < x < 1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=12.0 Mean=2.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=91 Mean=15
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4x10<sup>3</sup>   Mean=113
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=19.8 Mean=3.8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=295.1 Mean=33.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~1x10<sup>5</sup>   Mean=5x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11.2 Mean=2.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=63.5 Mean=13.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~1x10<sup>5</sup>   Mean=5x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=15.6 Mean=3.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=39.8 Mean=8.9
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~9x10<sup>4</sup>   Mean=5x10<sup>3</sup>  
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.sf_beta.ibeta_function.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_function.testing"></a></span><a class="link" href="ibeta_function.html#math_toolkit.sf_beta.ibeta_function.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests: spot tests compare values taken from <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=BetaRegularized" target="_top">Mathworld's
+        online function evaluator</a> with this implementation: they provide
+        a basic "sanity check" for the implementation, with one spot-test
+        in each implementation-domain (see implementation notes below).
+      </p>
+<p>
+        Accuracy tests use data generated at very high precision (with <a href="http://shoup.net/ntl/doc/RR.txt" target="_top">NTL
+        RR class</a> set at 1000-bit precision), using the "textbook"
+        continued fraction representation (refer to the first continued fraction
+        in the implementation discussion below). Note that this continued fraction
+        is <span class="emphasis"><em>not</em></span> used in the implementation, and therefore we
+        have test data that is fully independent of the code.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_function.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_function.implementation"></a></span><a class="link" href="ibeta_function.html#math_toolkit.sf_beta.ibeta_function.implementation">Implementation</a>
+      </h5>
+<p>
+        This implementation is closely based upon <a href="http://portal.acm.org/citation.cfm?doid=131766.131776" target="_top">"Algorithm
+        708; Significant digit computation of the incomplete beta function ratios",
+        DiDonato and Morris, ACM, 1992.</a>
+      </p>
+<p>
+        All four of these functions share a common implementation: this is passed
+        both x and y, and can return either p or q where these are related by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv5.png"></span>
+      </p>
+<p>
+        so at any point we can swap a for b, x for y and p for q if this results
+        in a more favourable position. Generally such swaps are performed so that
+        we always compute a value less than 0.9: when required this can then be subtracted
+        from 1 without undue cancellation error.
+      </p>
+<p>
+        The following continued fraction representation is found in many textbooks
+        but is not used in this implementation - it's both slower and less accurate
+        than the alternatives - however it is used to generate test data:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta5.png"></span>
+      </p>
+<p>
+        The following continued fraction is due to <a href="http://portal.acm.org/citation.cfm?doid=131766.131776" target="_top">Didonato
+        and Morris</a>, and is used in this implementation when a and b are both
+        greater than 1:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta6.png"></span>
+      </p>
+<p>
+        For smallish b and x then a series representation can be used:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta7.png"></span>
+      </p>
+<p>
+        When b << a then the transition from 0 to 1 occurs very close to x
+        = 1 and some care has to be taken over the method of computation, in that
+        case the following series representation is used:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta8.png"></span>
+
+      </p>
+<p>
+        Where Q(a,x) is an <a href="http://functions.wolfram.com/GammaBetaErf/Gamma2/" target="_top">incomplete
+        gamma function</a>. Note that this method relies on keeping a table of
+        all the p<sub>n </sub> previously computed, which does limit the precision of the method,
+        depending upon the size of the table used.
+      </p>
+<p>
+        When <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span> are both small integers,
+        then we can relate the incomplete beta to the binomial distribution and use
+        the following finite sum:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta12.png"></span>
+      </p>
+<p>
+        Finally we can sidestep difficult areas, or move to an area with a more efficient
+        means of computation, by using the duplication formulae:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta10.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta11.png"></span>
+      </p>
+<p>
+        The domains of a, b and x for which the various methods are used are identical
+        to those described in the <a href="http://portal.acm.org/citation.cfm?doid=131766.131776" target="_top">Didonato
+        and Morris TOMS 708 paper</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="beta_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_inv_function.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_inv_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_beta/ibeta_inv_function.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,511 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The Incomplete Beta Function Inverses</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_beta.html" title="Beta Functions">
+<link rel="prev" href="ibeta_function.html" title="Incomplete Beta Functions">
+<link rel="next" href="beta_derivative.html" title="Derivative of the Incomplete Beta Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="ibeta_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="beta_derivative.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_beta_ibeta_inv_function">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_beta.ibeta_inv_function"></a><a class="link" href="ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">The Incomplete
+      Beta Function Inverses</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_inv_function.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_inv_function.description"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.sf_beta.ibeta_inv_function.description">Description</a>
+      </h5>
+<p>
+        There are six <a href="http://functions.wolfram.com/GammaBetaErf/" target="_top">incomplete
+        beta function inverses</a> which allow you solve for any of the three
+        parameters to the incomplete beta, starting from either the result of the
+        incomplete beta (p) or its complement (q).
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          When people normally talk about the inverse of the incomplete beta function,
+          they are talking about inverting on parameter <span class="emphasis"><em>x</em></span>. These
+          are implemented here as ibeta_inv and ibetac_inv, and are by far the most
+          efficient of the inverses presented here.
+        </p>
+<p>
+          The inverses on the <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span> parameters
+          find use in some statistical applications, but have to be computed by rather
+          brute force numerical techniques and are consequently several times slower.
+          These are implemented here as ibeta_inva and ibeta_invb, and complement
+          versions ibetac_inva and ibetac_invb.
+        </p>
+</td></tr>
+</table></div>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when called with arguments T1...TN
+        of different types.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>x</em></span> such that: <code class="computeroutput"><span class="identifier">p</span>
+        <span class="special">=</span> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code> and
+        sets <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span>
+        <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">x</span></code> when
+        the <code class="computeroutput"><span class="identifier">py</span></code> parameter is provided
+        and is non-null. Note that internally this function computes whichever is
+        the smaller of <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="number">1</span><span class="special">-</span><span class="identifier">x</span></code>,
+        and therefore the value assigned to <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span></code> is free from cancellation errors. That
+        means that even if the function returns <code class="computeroutput"><span class="number">1</span></code>,
+        the value stored in <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span></code>
+        may be non-zero, albeit very small.
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a,b > 0</em></span> and <span class="emphasis"><em>0 <= p <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">T4</span><span class="special">*</span> <span class="identifier">py</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>x</em></span> such that: <code class="computeroutput"><span class="identifier">q</span>
+        <span class="special">=</span> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code> and
+        sets <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span>
+        <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">x</span></code> when
+        the <code class="computeroutput"><span class="identifier">py</span></code> parameter is provided
+        and is non-null. Note that internally this function computes whichever is
+        the smaller of <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="number">1</span><span class="special">-</span><span class="identifier">x</span></code>,
+        and therefore the value assigned to <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span></code> is free from cancellation errors. That
+        means that even if the function returns <code class="computeroutput"><span class="number">1</span></code>,
+        the value stored in <code class="computeroutput"><span class="special">*</span><span class="identifier">py</span></code>
+        may be non-zero, albeit very small.
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a,b > 0</em></span> and <span class="emphasis"><em>0 <= q <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>a</em></span> such that: <code class="computeroutput"><span class="identifier">p</span>
+        <span class="special">=</span> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>b > 0</em></span>, <span class="emphasis"><em>0 < x < 1</em></span>
+        and <span class="emphasis"><em>0 <= p <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>a</em></span> such that: <code class="computeroutput"><span class="identifier">q</span>
+        <span class="special">=</span> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>b > 0</em></span>, <span class="emphasis"><em>0 < x < 1</em></span>
+        and <span class="emphasis"><em>0 <= q <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>b</em></span> such that: <code class="computeroutput"><span class="identifier">p</span>
+        <span class="special">=</span> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a > 0</em></span>, <span class="emphasis"><em>0 < x < 1</em></span>
+        and <span class="emphasis"><em>0 <= p <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value <span class="emphasis"><em>b</em></span> such that: <code class="computeroutput"><span class="identifier">q</span>
+        <span class="special">=</span> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a > 0</em></span>, <span class="emphasis"><em>0 < x < 1</em></span>
+        and <span class="emphasis"><em>0 <= q <= 1</em></span>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_inv_function.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_inv_function.accuracy"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.sf_beta.ibeta_inv_function.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The accuracy of these functions should closely follow that of the regular
+        forward incomplete beta functions. However, note that in some parts of their
+        domain, these functions can be extremely sensitive to changes in input, particularly
+        when the argument <span class="emphasis"><em>p</em></span> (or it's complement <span class="emphasis"><em>q</em></span>)
+        is very close to <code class="computeroutput"><span class="number">0</span></code> or <code class="computeroutput"><span class="number">1</span></code>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_inv_function.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_inv_function.testing"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.sf_beta.ibeta_inv_function.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Basic sanity checks attempt to "round-trip" from <span class="emphasis"><em>a,
+            b</em></span> and <span class="emphasis"><em>x</em></span> to <span class="emphasis"><em>p</em></span> or
+            <span class="emphasis"><em>q</em></span> and back again. These tests have quite generous
+            tolerances: in general both the incomplete beta and its inverses change
+            so rapidly, that round tripping to more than a couple of significant
+            digits isn't possible. This is especially true when <span class="emphasis"><em>p</em></span>
+            or <span class="emphasis"><em>q</em></span> is very near one: in this case there isn't
+            enough "information content" in the input to the inverse function
+            to get back where you started.
+          </li>
+<li class="listitem">
+            Accuracy checks using high precision test values. These measure the accuracy
+            of the result, given exact input values.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_inv_function.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_">Implementation
+        of ibeta_inv and ibetac_inv</a>
+      </h5>
+<p>
+        These two functions share a common implementation.
+      </p>
+<p>
+        First an initial approximation to x is computed then the last few bits are
+        cleaned up using <a href="http://en.wikipedia.org/wiki/Simple_rational_approximation" target="_top">Halley
+        iteration</a>. The iteration limit is set to 1/2 of the number of bits
+        in T, which by experiment is sufficient to ensure that the inverses are at
+        least as accurate as the normal incomplete beta functions. Up to 5 iterations
+        may be required in extreme cases, although normally only one or two are required.
+        Further, the number of iterations required decreases with increasing <span class="emphasis"><em>a</em></span>
+        and <span class="emphasis"><em>b</em></span> (which generally form the more important use cases).
+      </p>
+<p>
+        The initial guesses used for iteration are obtained as follows:
+      </p>
+<p>
+        Firstly recall that:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv5.png"></span>
+      </p>
+<p>
+        We may wish to start from either p or q, and to calculate either x or y.
+        In addition at any stage we can exchange a for b, p for q, and x for y if
+        it results in a more manageable problem.
+      </p>
+<p>
+        For <code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span> <span class="special">>=</span> <span class="number">5</span></code> the initial guess is computed using the methods
+        described in:
+      </p>
+<p>
+        Asymptotic Inversion of the Incomplete Beta Function, by N. M. Temme.
+        Journal of Computational and Applied Mathematics 41 (1992) 145-157.
+      </p>
+<p>
+        The nearly symmetrical case (section 2 of the paper) is used for
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv2.png"></span>
+      </p>
+<p>
+        and involves solving the inverse error function first. The method is accurate
+        to at least 2 decimal digits when <code class="literal">a = 5</code> rising to at least
+        8 digits when <code class="literal">a = 10<sup>5</sup></code>.
+      </p>
+<p>
+        The general error function case (section 3 of the paper) is used for
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv3.png"></span>
+      </p>
+<p>
+        and again expresses the inverse incomplete beta in terms of the inverse of
+        the error function. The method is accurate to at least 2 decimal digits when
+        <code class="literal">a+b = 5</code> rising to 11 digits when <code class="literal">a+b = 10<sup>5</sup></code>.
+        However, when the result is expected to be very small, and when a+b is also
+        small, then its accuracy tails off, in this case when p<sup>1/a</sup> < 0.0025 then
+        it is better to use the following as an initial estimate:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv4.png"></span>
+      </p>
+<p>
+        Finally the for all other cases where <code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span> <span class="special">></span>
+        <span class="number">5</span></code> the method of section 4 of the paper
+        is used. This expresses the inverse incomplete beta in terms of the inverse
+        of the incomplete gamma function, and is therefore significantly more expensive
+        to compute than the other cases. However the method is accurate to at least
+        3 decimal digits when <code class="literal">a = 5</code> rising to at least 10 digits
+        when <code class="literal">a = 10<sup>5</sup></code>. This method is limited to a > b, and
+        therefore we need to perform an exchange a for b, p for q and x for y when
+        this is not the case. In addition when p is close to 1 the method is inaccurate
+        should we actually want y rather than x as output. Therefore when q is small
+        (<code class="literal">q<sup>1/p</sup> < 10<sup>-3</sup></code>) we use:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv6.png"></span>
+      </p>
+<p>
+        which is both cheaper to compute than the full method, and a more accurate
+        estimate on q.
+      </p>
+<p>
+        When a and b are both small there is a distinct lack of information in the
+        literature on how to proceed. I am extremely grateful to Prof Nico Temme
+        who provided the following information with a great deal of patience and
+        explanation on his part. Any errors that follow are entirely my own, and
+        not Prof Temme's.
+      </p>
+<p>
+        When a and b are both less than 1, then there is a point of inflection in
+        the incomplete beta at point <code class="computeroutput"><span class="identifier">xs</span>
+        <span class="special">=</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">a</span><span class="special">)</span> <span class="special">/</span> <span class="special">(</span><span class="number">2</span> <span class="special">-</span> <span class="identifier">a</span>
+        <span class="special">-</span> <span class="identifier">b</span><span class="special">)</span></code>. Therefore if <code class="literal">p > I<sub>x</sub>(a,b)</code>
+        we swap a for b, p for q and x for y, so that now we always look for a point
+        x below the point of inflection <code class="computeroutput"><span class="identifier">xs</span></code>,
+        and on a convex curve. An initial estimate for x is made with:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv7.png"></span>
+      </p>
+<p>
+        which is provably below the true value for x: <a href="http://en.wikipedia.org/wiki/Newton%27s_method" target="_top">Newton
+        iteration</a> will therefore smoothly converge on x without problems
+        caused by overshooting etc.
+      </p>
+<p>
+        When a and b are both greater than 1, but a+b is too small to use the other
+        methods mentioned above, we proceed as follows. Observe that there is a point
+        of inflection in the incomplete beta at <code class="computeroutput"><span class="identifier">xs</span>
+        <span class="special">=</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">a</span><span class="special">)</span> <span class="special">/</span> <span class="special">(</span><span class="number">2</span> <span class="special">-</span> <span class="identifier">a</span>
+        <span class="special">-</span> <span class="identifier">b</span><span class="special">)</span></code>. Therefore if <code class="literal">p > I<sub>x</sub>(a,b)</code>
+        we swap a for b, p for q and x for y, so that now we always look for a point
+        x below the point of inflection <code class="computeroutput"><span class="identifier">xs</span></code>,
+        and on a concave curve. An initial estimate for x is made with:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv4.png"></span>
+      </p>
+<p>
+        which can be improved somewhat to:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv1.png"></span>
+      </p>
+<p>
+        when b and x are both small (I've used b < a and x < 0.2). This actually
+        under-estimates x, which drops us on the wrong side of x for Newton iteration
+        to converge monotonically. However, use of higher derivatives and Halley
+        iteration keeps everything under control.
+      </p>
+<p>
+        The final case to be considered if when one of a and b is less than or equal
+        to 1, and the other greater that 1. Here, if b < a we swap a for b, p
+        for q and x for y. Now the curve of the incomplete beta is convex with no
+        points of inflection in [0,1]. For small p, x can be estimated using
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv4.png"></span>
+      </p>
+<p>
+        which under-estimates x, and drops us on the right side of the true value
+        for Newton iteration to converge monotonically. However, when p is large
+        this can quite badly underestimate x. This is especially an issue when we
+        really want to find y, in which case this method can be an arbitrary number
+        of order of magnitudes out, leading to very poor convergence during iteration.
+      </p>
+<p>
+        Things can be improved by considering the incomplete beta as a distorted
+        quarter circle, and estimating y from:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/ibeta_inv8.png"></span>
+      </p>
+<p>
+        This doesn't guarantee that we will drop in on the right side of x for monotonic
+        convergence, but it does get us close enough that Halley iteration rapidly
+        converges on the true value.
+      </p>
+<h5>
+<a name="math_toolkit.sf_beta.ibeta_inv_function.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_beta.ibeta_inv_function.implementation_of_inverses_on_th"></a></span><a class="link" href="ibeta_inv_function.html#math_toolkit.sf_beta.ibeta_inv_function.implementation_of_inverses_on_th">Implementation
+        of inverses on the a and b parameters</a>
+      </h5>
+<p>
+        These four functions share a common implementation.
+      </p>
+<p>
+        First an initial approximation is computed for <span class="emphasis"><em>a</em></span> or
+        <span class="emphasis"><em>b</em></span>: where possible this uses a Cornish-Fisher expansion
+        for the negative binomial distribution to get within around 1 of the result.
+        However, when <span class="emphasis"><em>a</em></span> or <span class="emphasis"><em>b</em></span> are very small
+        the Cornish Fisher expansion is not usable, in this case the initial approximation
+        is chosen so that I<sub>x</sub>(a, b) is near the middle of the range [0,1].
+      </p>
+<p>
+        This initial guess is then used as a starting value for a generic root finding
+        algorithm. The algorithm converges rapidly on the root once it has been bracketed,
+        but bracketing the root may take several iterations. A better initial approximation
+        for <span class="emphasis"><em>a</em></span> or <span class="emphasis"><em>b</em></span> would improve these
+        functions quite substantially: currently 10-20 incomplete beta function invocations
+        are required to find the root.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="ibeta_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="beta_derivative.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_erf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_erf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">
+<link rel="next" href="sf_erf/error_function.html" title="Error Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_beta/beta_derivative.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_erf/error_function.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_erf">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sf_erf"></a><a class="link" href="sf_erf.html" title="Error Functions">Error Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Error Functions</span></dt>
+<dt><span class="section">Error Function Inverses</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_beta/beta_derivative.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_erf/error_function.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_function.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_function.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,620 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_erf.html" title="Error Functions">
+<link rel="prev" href="../sf_erf.html" title="Error Functions">
+<link rel="next" href="error_inv.html" title="Error Function Inverses">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_erf.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="error_inv.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_erf_error_function">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_erf.error_function"></a><a class="link" href="error_function.html" title="Error Functions">Error Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_erf.error_function.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_function.synopsis"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_function.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_function.description"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the <a href="http://en.wikipedia.org/wiki/Error_function" target="_top">error
+        function</a> erf
+        of z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/erf1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/erf.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the complement of the <a href="http://functions.wolfram.com/GammaBetaErf/Erfc/" target="_top">error
+        function</a> of z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/erf2.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/erfc.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_function.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_function.accuracy"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to the GSL-1.9, GNU C Lib, <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+        C Library</a> and Cephes
+        libraries. Unless otherwise specified any floating point type that is narrower
+        than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_erf.error_function.errors_in_the_function_erf_z"></a><p class="title"><b>Table 3.12. Errors In the Function erf(z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function erf(z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  z < 0.5
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < z < 8
+                </p>
+              </th>
+<th>
+                <p>
+                  z > 8
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GSL Peak=2.0 Mean=0.3
+                </p>
+                <p>
+                  Cephes Peak=1.1
+                  Mean=0.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.09
+                </p>
+                <p>
+                  GSL Peak=2.3 Mean=0.3
+                </p>
+                <p>
+                  Cephes Peak=1.3
+                  Mean=0.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GSL Peak=0 Mean=0
+                </p>
+                <p>
+                  Cephes Peak=0
+                  Mean=0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.7 Mean=0.07
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0.9 Mean=0.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.2
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0.9 Mean=0.07
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.7 Mean=0.07
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.1
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0.5 Mean=0.03
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.8 Mean=0.1
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Lib Peak=0.9 Mean=0.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.1
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Lib Peak=0.5 Mean=0.02
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Lib Peak=0 Mean=0
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_erf.error_function.errors_in_the_function_erfc_z"></a><p class="title"><b>Table 3.13. Errors In the Function erfc(z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function erfc(z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  z < 0.5
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < z < 8
+                </p>
+              </th>
+<th>
+                <p>
+                  z > 8
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.7 Mean=0.06
+                </p>
+                <p>
+                  GSL Peak=1.0 Mean=0.4
+                </p>
+                <p>
+                  Cephes Peak=0.7
+                  Mean=0.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.3
+                </p>
+                <p>
+                  GSL Peak=2.6 Mean=0.6
+                </p>
+                <p>
+                  Cephes Peak=3.6
+                  Mean=0.7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.0 Mean=0.2
+                </p>
+                <p>
+                  GSL Peak=3.9 Mean=0.4
+                </p>
+                <p>
+                  Cephes Peak=2.7
+                  Mean=0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.4 Mean=0.3
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=1.3 Mean=0.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.6 Mean=0.4
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=1.3 Mean=0.4
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.4 Mean=0.3
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.5 Mean=0.4
+                </p>
+                <p>
+                  GNU C Lib
+                  Peak=0 Mean=0
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0 Mean=0
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak=0 Mean=0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.5 Mean=0.3
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak=0.9 Mean=0.08
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.6 Mean=0.4
+                </p>
+                <p>
+                  <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak=0.9 Mean=0.1
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.sf_erf.error_function.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_function.testing"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.testing">Testing</a>
+      </h5>
+<p>
+        The tests for these functions come in two parts: basic sanity checks use
+        spot values calculated using <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=Erf" target="_top">Mathworld's
+        online evaluator</a>, while accuracy checks use high-precision test values
+        calculated at 1000-bit precision with NTL::RR
+        and this implementation. Note that the generic and type-specific versions
+        of these functions use differing implementations internally, so this gives
+        us reasonably independent test data. Using our test data to test other "known
+        good" implementations also provides an additional sanity check.
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_function.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_function.implementation"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.implementation">Implementation</a>
+      </h5>
+<p>
+        All versions of these functions first use the usual reflection formulas to
+        make their arguments positive:
+      </p>
+<pre class="programlisting"><span class="identifier">erf</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+
+<span class="identifier">erfc</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">2</span> <span class="special">-</span> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>  <span class="comment">// preferred when -z < -0.5</span>
+
+<span class="identifier">erfc</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span> <span class="special">+</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>   <span class="comment">// preferred when -0.5 <= -z < 0</span>
+</pre>
+<p>
+        The generic versions of these functions are implemented in terms of the incomplete
+        gamma function.
+      </p>
+<p>
+        When the significand (mantissa) size is recognised (currently for 53, 64
+        and 113-bit reals, plus single-precision 24-bit handled via promotion to
+        double) then a series of rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> are used.
+      </p>
+<p>
+        For <code class="computeroutput"><span class="identifier">z</span> <span class="special"><=</span>
+        <span class="number">0.5</span></code> then a rational approximation to
+        erf is used, based on the observation that erf is an odd function and therefore
+        erf is calculated using:
+      </p>
+<pre class="programlisting"><span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">z</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">C</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">));</span>
+</pre>
+<p>
+        where the rational approximation R(z*z) is optimised for absolute error:
+        as long as its absolute error is small enough compared to the constant C,
+        then any round-off error incurred during the computation of R(z*z) will effectively
+        disappear from the result. As a result the error for erf and erfc in this
+        region is very low: the last bit is incorrect in only a very small number
+        of cases.
+      </p>
+<p>
+        For <code class="computeroutput"><span class="identifier">z</span> <span class="special">></span>
+        <span class="number">0.5</span></code> we observe that over a small interval
+        [a, b) then:
+      </p>
+<pre class="programlisting"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">z</span> <span class="special">~</span> <span class="identifier">c</span>
+</pre>
+<p>
+        for some constant c.
+      </p>
+<p>
+        Therefore for <code class="computeroutput"><span class="identifier">z</span> <span class="special">></span>
+        <span class="number">0.5</span></code> we calculate erfc using:
+      </p>
+<pre class="programlisting"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">exp</span><span class="special">(-</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">C</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">B</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">z</span><span class="special">;</span>
+</pre>
+<p>
+        Again R(z - B) is optimised for absolute error, and the constant <code class="computeroutput"><span class="identifier">C</span></code> is the average of <code class="computeroutput"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span>
+        <span class="special">*</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span>
+        <span class="identifier">z</span></code> taken at the endpoints of the
+        range. Once again, as long as the absolute error in R(z - B) is small compared
+        to <code class="computeroutput"><span class="identifier">c</span></code> then <code class="computeroutput"><span class="identifier">c</span>
+        <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span> <span class="special">-</span>
+        <span class="identifier">B</span><span class="special">)</span></code>
+        will be correctly rounded, and the error in the result will depend only on
+        the accuracy of the exp function. In practice, in all but a very small number
+        of cases, the error is confined to the last bit of the result. The constant
+        <code class="computeroutput"><span class="identifier">B</span></code> is chosen so that the left
+        hand end of the range of the rational approximation is 0.
+      </p>
+<p>
+        For large <code class="computeroutput"><span class="identifier">z</span></code> over a range
+        [a, +∞] the above approximation is modified to:
+      </p>
+<pre class="programlisting"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">exp</span><span class="special">(-</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">C</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="number">1</span> <span class="special">/</span> <span class="identifier">z</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">z</span><span class="special">;</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_erf.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="error_inv.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_inv.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_erf/error_inv.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,192 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Function Inverses</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_erf.html" title="Error Functions">
+<link rel="prev" href="error_function.html" title="Error Functions">
+<link rel="next" href="../sf_poly.html" title="Polynomials">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="error_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_poly.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_erf_error_inv">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_erf.error_inv"></a><a class="link" href="error_inv.html" title="Error Function Inverses">Error Function Inverses</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_erf.error_inv.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_inv.synopsis"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_inv.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_inv.description"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the <a href="http://functions.wolfram.com/GammaBetaErf/InverseErf/" target="_top">inverse
+        error function</a> of z, that is a value x such that:
+      </p>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/erf_inv.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the inverse of the complement of the error function of z, that is
+        a value x such that:
+      </p>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/erfc_inv.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_inv.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_inv.accuracy"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.accuracy">Accuracy</a>
+      </h5>
+<p>
+        For types up to and including 80-bit long doubles the approximations used
+        are accurate to less than ~ 2 epsilon. For higher precision types these functions
+        have the same accuracy as the <a class="link" href="error_function.html" title="Error Functions">forward
+        error functions</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_erf.error_inv.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_inv.testing"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Basic sanity checks attempt to "round-trip" from <span class="emphasis"><em>x</em></span>
+            to <span class="emphasis"><em>p</em></span> and back again. These tests have quite generous
+            tolerances: in general both the error functions and their inverses change
+            so rapidly in some places that round tripping to more than a couple of
+            significant digits isn't possible. This is especially true when <span class="emphasis"><em>p</em></span>
+            is very near one: in this case there isn't enough "information content"
+            in the input to the inverse function to get back where you started.
+          </li>
+<li class="listitem">
+            Accuracy checks using high-precision test values. These measure the accuracy
+            of the result, given <span class="emphasis"><em>exact</em></span> input values.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.sf_erf.error_inv.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_erf.error_inv.implementation"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions use a rational approximation <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> to calculate an initial approximation to the result that is
+        accurate to ~10<sup>-19</sup>, then only if that has insufficient accuracy compared
+        to the epsilon for T, do we clean up the result using <a href="http://en.wikipedia.org/wiki/Simple_rational_approximation" target="_top">Halley
+        iteration</a>.
+      </p>
+<p>
+        Constructing rational approximations to the erf/erfc functions is actually
+        surprisingly hard, especially at high precision. For this reason no attempt
+        has been made to achieve 10<sup>-34 </sup> accuracy suitable for use with 128-bit reals.
+      </p>
+<p>
+        In the following discussion, <span class="emphasis"><em>p</em></span> is the value passed to
+        erf_inv, and <span class="emphasis"><em>q</em></span> is the value passed to erfc_inv, so that
+        <span class="emphasis"><em>p = 1 - q</em></span> and <span class="emphasis"><em>q = 1 - p</em></span> and in
+        both cases we want to solve for the same result <span class="emphasis"><em>x</em></span>.
+      </p>
+<p>
+        For <span class="emphasis"><em>p < 0.5</em></span> the inverse erf function is reasonably
+        smooth and the approximation:
+      </p>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">(</span><span class="identifier">p</span> <span class="special">+</span> <span class="number">10</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">p</span><span class="special">))</span>
+</pre>
+<p>
+        Gives a good result for a constant Y, and R(p) optimised for low absolute
+        error compared to |Y|.
+      </p>
+<p>
+        For q < 0.5 things get trickier, over the interval <span class="emphasis"><em>0.5 >
+        q > 0.25</em></span> the following approximation works well:
+      </p>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="number">2l</span><span class="identifier">og</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
+</pre>
+<p>
+        While for q < 0.25, let
+      </p>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
+</pre>
+<p>
+        Then the result is given by:
+      </p>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">z</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">B</span><span class="special">))</span>
+</pre>
+<p>
+        As before Y is a constant and the rational function R is optimised for low
+        absolute error compared to |Y|. B is also a constant: it is the smallest
+        value of <span class="emphasis"><em>z</em></span> for which each approximation is valid. There
+        are several approximations of this form each of which reaches a little further
+        into the tail of the erfc function (at <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code> precision the extended exponent
+        range compared to <code class="computeroutput"><span class="keyword">double</span></code> means
+        that the tail goes on for a very long way indeed).
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error_function.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../sf_poly.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Gamma Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="next" href="sf_gamma/tgamma.html" title="Gamma">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../special.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_gamma/tgamma.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sf_gamma"></a><a class="link" href="sf_gamma.html" title="Gamma Functions">Gamma Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Gamma</span></dt>
+<dt><span class="section">Log Gamma</span></dt>
+<dt><span class="section">Digamma</span></dt>
+<dt><span class="section">Ratios of Gamma Functions</span></dt>
+<dt><span class="section">Incomplete Gamma Functions</span></dt>
+<dt><span class="section"><a href="sf_gamma/igamma_inv.html">Incomplete Gamma Function
+      Inverses</a></span></dt>
+<dt><span class="section"><a href="sf_gamma/gamma_derivatives.html">Derivative of
+      the Incomplete Gamma Function</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../special.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_gamma/tgamma.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/digamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/digamma.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,375 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Digamma</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="lgamma.html" title="Log Gamma">
+<link rel="next" href="gamma_ratios.html" title="Ratios of Gamma Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="lgamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_ratios.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_digamma">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.digamma"></a><a class="link" href="digamma.html" title="Digamma">Digamma</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.digamma.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.synopsis"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">digamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.digamma.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.description"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.description">Description</a>
+      </h5>
+<p>
+        Returns the digamma or psi function of <span class="emphasis"><em>x</em></span>. Digamma is
+        defined as the logarithmic derivative of the gamma function:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/digamma1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/digamma.png" align="middle"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        There is no fully generic version of this function: all the implementations
+        are tuned to specific accuracy levels, the most precise of which delivers
+        34-digits of precision.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the result is of type <code class="computeroutput"><span class="keyword">double</span></code> when T is an integer type, and type
+        T otherwise.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.digamma.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.accuracy"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types. Unless otherwise specified
+        any floating point type that is narrower than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively zero error</a>.
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Random Positive Values
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near The Positive Root
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near Zero
+                </p>
+              </th>
+<th>
+                <p>
+                  Negative Values
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.98 Mean=0.36
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.95 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=214 Mean=16
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA32 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.4 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.3 Mean=0.45
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.98 Mean=0.35
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=180 Mean=13
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA64 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.92 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.3 Mean=0.45
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.98 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=180 Mean=13
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.1 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=64 Mean=6
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+        As shown above, error rates for positive arguments are generally very low.
+        For negative arguments there are an infinite number of irrational roots:
+        relative errors very close to these can be arbitrarily large, although absolute
+        error will remain very low.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.digamma.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.testing"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests: spot values are computed using the online calculator
+        at functions.wolfram.com, while random test values are generated using the
+        high-precision reference implementation (a differentiated <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> see below).
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.digamma.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.digamma.implementation"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.implementation">Implementation</a>
+      </h5>
+<p>
+        The implementation is divided up into the following domains:
+      </p>
+<p>
+        For Negative arguments the reflection formula:
+      </p>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pi</span><span class="special">/</span><span class="identifier">tan</span><span class="special">(</span><span class="identifier">pi</span><span class="special">*</span><span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+        is used to make <span class="emphasis"><em>x</em></span> positive.
+      </p>
+<p>
+        For arguments in the range [0,1] the recurrence relation:
+      </p>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span>
+</pre>
+<p>
+        is used to shift the evaluation to [1,2].
+      </p>
+<p>
+        For arguments in the range [1,2] a rational approximation <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> is used (see below).
+      </p>
+<p>
+        For arguments in the range [2,BIG] the recurrence relation:
+      </p>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span><span class="special">;</span>
+</pre>
+<p>
+        is used to shift the evaluation to the range [1,2].
+      </p>
+<p>
+        For arguments > BIG the asymptotic expansion:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/digamma2.png"></span>
+      </p>
+<p>
+        can be used. However, this expansion is divergent after a few terms: exactly
+        how many terms depends on the size of <span class="emphasis"><em>x</em></span>. Therefore the
+        value of <span class="emphasis"><em>BIG</em></span> must be chosen so that the series can be
+        truncated at a term that is too small to have any effect on the result when
+        evaluated at <span class="emphasis"><em>BIG</em></span>. Choosing BIG=10 for up to 80-bit reals,
+        and BIG=20 for 128-bit reals allows the series to truncated after a suitably
+        small number of terms and evaluated as a polynomial in <code class="computeroutput"><span class="number">1</span><span class="special">/(</span><span class="identifier">x</span><span class="special">*</span><span class="identifier">x</span><span class="special">)</span></code>.
+      </p>
+<p>
+        The rational approximation <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> in the range [1,2] is derived as follows.
+      </p>
+<p>
+        First a high precision approximation to digamma was constructed using a 60-term
+        differentiated <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>,
+        the form used is:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/digamma3.png"></span>
+      </p>
+<p>
+        Where P(x) and Q(x) are the polynomials from the rational form of the Lanczos
+        sum, and P'(x) and Q'(x) are their first derivatives. The Lanzos part of
+        this approximation has a theoretical precision of ~100 decimal digits. However,
+        cancellation in the above sum will reduce that to around <code class="computeroutput"><span class="number">99</span><span class="special">-(</span><span class="number">1</span><span class="special">/</span><span class="identifier">y</span><span class="special">)</span></code> digits
+        if <span class="emphasis"><em>y</em></span> is the result. This approximation was used to calculate
+        the positive root of digamma, and was found to agree with the value used
+        by Cody to 25 digits (See Math. Comp. 27, 123-127 (1973) by Cody, Strecok
+        and Thacher) and with the value used by Morris to 35 digits (See TOMS Algorithm
+        708).
+      </p>
+<p>
+        Likewise a few spot tests agreed with values calculated using functions.wolfram.com
+        to >40 digits. That's sufficiently precise to insure that the approximation
+        below is accurate to double precision. Achieving 128-bit long double precision
+        requires that the location of the root is known to ~70 digits, and it's not
+        clear whether the value calculated by this method meets that requirement:
+        the difficulty lies in independently verifying the value obtained.
+      </p>
+<p>
+        The rational approximation <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> was optimised for absolute error using the form:
+      </p>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">X0</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="number">1</span><span class="special">));</span>
+</pre>
+<p>
+        Where X0 is the positive root of digamma, Y is a constant, and R(x - 1) is
+        the rational approximation. Note that since X0 is irrational, we need twice
+        as many digits in X0 as in x in order to avoid cancellation error during
+        the subtraction (this assumes that <span class="emphasis"><em>x</em></span> is an exact value,
+        if it's not then all bets are off). That means that even when x is the value
+        of the root rounded to the nearest representable value, the result of digamma(x)
+        <span class="emphasis"><em><span class="bold"><strong>will not be zero</strong></span></em></span>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lgamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_ratios.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_derivatives.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_derivatives.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,97 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Derivative of the Incomplete Gamma Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="igamma_inv.html" title="Incomplete Gamma Function Inverses">
+<link rel="next" href="../factorials.html" title="Factorials and Binomial Coefficients">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="igamma_inv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../factorials.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_gamma_derivatives">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.gamma_derivatives"></a><a class="link" href="gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">Derivative of
+      the Incomplete Gamma Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_derivatives.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_derivatives.synopsis"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.sf_gamma.gamma_derivatives.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_derivatives.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_derivatives.description"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.sf_gamma.gamma_derivatives.description">Description</a>
+      </h5>
+<p>
+        This function find some uses in statistical distributions: it implements
+        the partial derivative with respect to <span class="emphasis"><em>x</em></span> of the incomplete
+        gamma function.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/derivative1.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Note that the derivative of the function <a class="link" href="igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+        can be obtained by negating the result of this function.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types,
+        otherwise the return type is simply T1.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_derivatives.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_derivatives.accuracy"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.sf_gamma.gamma_derivatives.accuracy">Accuracy</a>
+      </h5>
+<p>
+        Almost identical to the incomplete gamma function <a class="link" href="igamma.html" title="Incomplete Gamma Functions">gamma_p</a>:
+        refer to the documentation for that function for more information.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_derivatives.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_derivatives.implementation"></a></span><a class="link" href="gamma_derivatives.html#math_toolkit.sf_gamma.gamma_derivatives.implementation">Implementation</a>
+      </h5>
+<p>
+        This function just expose some of the internals of the incomplete gamma function
+        <a class="link" href="igamma.html" title="Incomplete Gamma Functions">gamma_p</a>: refer to the
+        documentation for that function for more information.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="igamma_inv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../factorials.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_ratios.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/gamma_ratios.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,345 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Ratios of Gamma Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="digamma.html" title="Digamma">
+<link rel="next" href="igamma.html" title="Incomplete Gamma Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="digamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="igamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_gamma_ratios">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.gamma_ratios"></a><a class="link" href="gamma_ratios.html" title="Ratios of Gamma Functions">Ratios of Gamma Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">delta</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">delta</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_ratios.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_ratios.description"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the ratio of gamma functions:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamma_ratio0.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Internally this just calls <code class="computeroutput"><span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span></code>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">delta</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">delta</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the ratio of gamma functions:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamma_ratio1.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        Note that the result is calculated accurately even when <span class="emphasis"><em>delta</em></span>
+        is small compared to <span class="emphasis"><em>a</em></span>: indeed even if <span class="emphasis"><em>a+delta
+        ~ a</em></span>. The function is typically used when <span class="emphasis"><em>a</em></span>
+        is large and <span class="emphasis"><em>delta</em></span> is very small.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types,
+        otherwise the result type is simple T1.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/tgamma_delta_ratio.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_ratios.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_ratios.accuracy"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types. Unless otherwise specified
+        any floating point type that is narrower than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_de"></a><p class="title"><b>Table 3.1. Errors In the Function tgamma_delta_ratio(a, delta)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_delta_ratio(a, delta)">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  20 < a < 80
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  delta < 1
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=16.9 Mean=1.7
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=24 Mean=2.7
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=12.8 Mean=1.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=21.4 Mean=2.3
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_gamma.gamma_ratios.errors_in_the_function_tgamma_ra"></a><p class="title"><b>Table 3.2. Errors In the Function tgamma_ratio(a, b)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_ratio(a, b)">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  6 < a,b < 50
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=34 Mean=9
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA32, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=91 Mean=23
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=35.6 Mean=9.3
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=43.9 Mean=13.2
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.sf_gamma.gamma_ratios.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_ratios.testing"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.testing">Testing</a>
+      </h5>
+<p>
+        Accuracy tests use data generated at very high precision (with <a href="http://shoup.net/ntl/doc/RR.txt" target="_top">NTL
+        RR class</a> set at 1000-bit precision: about 300 decimal digits) and
+        a deliberately naive calculation of Γ(x)/Γ(y).
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.gamma_ratios.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.gamma_ratios.implementation"></a></span><a class="link" href="gamma_ratios.html#math_toolkit.sf_gamma.gamma_ratios.implementation">Implementation</a>
+      </h5>
+<p>
+        The implementation of these functions is very similar to that of <a class="link" href="../sf_beta/beta_function.html" title="Beta">beta</a>,
+        and is based on combining similar power terms to improve accuracy and avoid
+        spurious overflow/underflow.
+      </p>
+<p>
+        In addition there are optimisations for the situation where <span class="emphasis"><em>delta</em></span>
+        is a small integer: in which case this function is basically the reciprocal
+        of a rising factorial, or where both arguments are smallish integers: in
+        which case table lookup of factorials can be used to calculate the ratio.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="digamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="igamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1034 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Incomplete Gamma Functions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="gamma_ratios.html" title="Ratios of Gamma Functions">
+<link rel="next" href="igamma_inv.html" title="Incomplete Gamma Function Inverses">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="gamma_ratios.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="igamma_inv.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_igamma">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.igamma"></a><a class="link" href="igamma.html" title="Incomplete Gamma Functions">Incomplete Gamma Functions</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.synopsis"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_lower</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_lower</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.description"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.description">Description</a>
+      </h5>
+<p>
+        There are four <a href="http://mathworld.wolfram.com/IncompleteGammaFunction.html" target="_top">incomplete
+        gamma functions</a>: two are normalised versions (also known as <span class="emphasis"><em>regularized</em></span>
+        incomplete gamma functions) that return values in the range [0, 1], and two
+        are non-normalised and return values in the range [0, Γ(a)]. Users interested
+        in statistical applications should use the <a href="http://mathworld.wolfram.com/RegularizedGammaFunction.html" target="_top">normalised
+        versions (gamma_p and gamma_q)</a>.
+      </p>
+<p>
+        All of these functions require <span class="emphasis"><em>a > 0</em></span> and <span class="emphasis"><em>z
+        >= 0</em></span>, otherwise they return the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types,
+        otherwise the return type is simply T1.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the normalised lower incomplete gamma function of a and z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/igamma4.png"></span>
+      </p>
+<p>
+        This function changes rapidly from 0 to 1 around the point z == a:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/gamma_p.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the normalised upper incomplete gamma function of a and z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/igamma3.png"></span>
+      </p>
+<p>
+        This function changes rapidly from 1 to 0 around the point z == a:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/gamma_q.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_lower</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_lower</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the full (non-normalised) lower incomplete gamma function of a and
+        z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/igamma2.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the full (non-normalised) upper incomplete gamma function of a and
+        z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/igamma1.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.accuracy"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following tables give peak and mean relative errors in over various domains
+        of a and z, along with comparisons to the GSL-1.9
+        and Cephes libraries.
+        Note that only results for the widest floating point type on the system are
+        given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<p>
+        Note that errors grow as <span class="emphasis"><em>a</em></span> grows larger.
+      </p>
+<p>
+        Note also that the higher error rates for the 80 and 128 bit long double
+        results are somewhat misleading: expected results that are zero at 64-bit
+        double precision may be non-zero - but exceptionally small - with the larger
+        exponent range of a long double. These results therefore reflect the more
+        extreme nature of the tests conducted for these types.
+      </p>
+<p>
+        All values are in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_p_a"></a><p class="title"><b>Table 3.3. Errors In the Function gamma_p(a,z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function gamma_p(a,z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < a < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-12</sup> < a < 5x10<sup>-2</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1e-6 < a < 1.7x10<sup>6</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  1 < z < 100*a
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=36 Mean=9.1
+                </p>
+                <p>
+                  (GSL Peak=342 Mean=46)
+                </p>
+                <p>
+                  (Cephes Peak=491
+                  Mean=102)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.5 Mean=1.4
+                </p>
+                <p>
+                  (GSL Peak=4.8 Mean=0.76)
+                </p>
+                <p>
+                  (Cephes Peak=21
+                  Mean=5.6)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=244 Mean=21
+                </p>
+                <p>
+                  (GSL Peak=1022 Mean=1054)
+                </p>
+                <p>
+                  (Cephes Peak~8x10<sup>6</sup> Mean~7x10<sup>4</sup>)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=241 Mean=36
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.7 Mean=1.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~30,220 Mean=1929
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=41 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.7 Mean=1.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak~30,790 Mean=1864
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=40.2 Mean=10.2
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5 Mean=1.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5,476 Mean=440
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_gamma.igamma.errors_in_the_function_gamma_q_a"></a><p class="title"><b>Table 3.4. Errors In the Function gamma_q(a,z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function gamma_q(a,z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < a < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-12</sup> < a < 5x10<sup>-2</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-6</sup> < a < 1.7x10<sup>6</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  1 < z < 100*a
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=28.3 Mean=7.2
+                </p>
+                <p>
+                  (GSL Peak=201 Mean=13)
+                </p>
+                <p>
+                  (Cephes Peak=556
+                  Mean=97)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.8 Mean=1.6
+                </p>
+                <p>
+                  (GSL Peak~1.3x10<sup>10</sup> Mean=1x10<sup>+9</sup>)
+                </p>
+                <p>
+                  (Cephes Peak~3x10<sup>11</sup> Mean=4x10<sup>10</sup>)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=469 Mean=33
+                </p>
+                <p>
+                  (GSL Peak=27,050 Mean=2159)
+                </p>
+                <p>
+                  (Cephes Peak~8x10<sup>6</sup> Mean~7x10<sup>5</sup>)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=280 Mean=33
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.1 Mean=1.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11,490 Mean=732
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=32 Mean=9.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.7 Mean=1.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6815 Mean=414
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=37 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=11.2 Mean=2.0
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4,999 Mean=298
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_lo"></a><p class="title"><b>Table 3.5. Errors In the Function tgamma_lower(a,z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function tgamma_lower(a,z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < a < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-12</sup> < a < 5x10<sup>-2</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.5 Mean=1.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.6 Mean=0.78
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=402 Mean=79
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.4 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6.8 Mean=1.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.4 Mean=0.78
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6.1 Mean=1.8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.7 Mean=0.89
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_gamma.igamma.errors_in_the_function_tgamma_a_"></a><p class="title"><b>Table 3.6. Errors In the Function tgamma(a,z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function tgamma(a,z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  0.5 < a < 100
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+<th>
+                <p>
+                  1x10<sup>-12</sup> < a < 5x10<sup>-2</sup>
+                </p>
+                <p>
+                  and
+                </p>
+                <p>
+                  0.01*a < z < 100*a
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.9 Mean=1.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.8 Mean=0.6
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA32, gcc-3.3
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=596 Mean=116
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.2 Mean=0.84
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=40.2 Mean=2.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.2 Mean=0.8
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=364 Mean=17.6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=12.7 Mean=1.8
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.sf_gamma.igamma.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.testing"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests: spot tests compare values taken from Mathworld's online evaluator
+        with this implementation to perform a basic "sanity check". Accuracy
+        tests use data generated at very high precision (using NTL's RR class set
+        at 1000-bit precision) using this implementation with a very high precision
+        60-term <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>,
+        and some but not all of the special case handling disabled. This is less
+        than satisfactory: an independent method should really be used, but apparently
+        a complete lack of such methods are available. We can't even use a deliberately
+        naive implementation without special case handling since Legendre's continued
+        fraction (see below) is unstable for small a and z.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.implementation"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.implementation">Implementation</a>
+      </h5>
+<p>
+        These four functions share a common implementation since they are all related
+        via:
+      </p>
+<p>
+        1) <span class="inlinemediaobject"><img src="../../../equations/igamma5.png"></span>
+      </p>
+<p>
+        2) <span class="inlinemediaobject"><img src="../../../equations/igamma6.png"></span>
+      </p>
+<p>
+        3) <span class="inlinemediaobject"><img src="../../../equations/igamma7.png"></span>
+      </p>
+<p>
+        The lower incomplete gamma is computed from its series representation:
+      </p>
+<p>
+        4) <span class="inlinemediaobject"><img src="../../../equations/igamma8.png"></span>
+      </p>
+<p>
+        Or by subtraction of the upper integral from either Γ(a) or 1 when <span class="emphasis"><em>x
+        - (1</em></span>(3x)) > a and x > 1.1/.
+      </p>
+<p>
+        The upper integral is computed from Legendre's continued fraction representation:
+      </p>
+<p>
+        5) <span class="inlinemediaobject"><img src="../../../equations/igamma9.png"></span>
+      </p>
+<p>
+        When <span class="emphasis"><em>(x > 1.1)</em></span> or by subtraction of the lower integral
+        from either Γ(a) or 1 when <span class="emphasis"><em>x - (1</em></span>(3x)) < a/.
+      </p>
+<p>
+        For <span class="emphasis"><em>x < 1.1</em></span> computation of the upper integral is
+        more complex as the continued fraction representation is unstable in this
+        area. However there is another series representation for the lower integral:
+      </p>
+<p>
+        6) <span class="inlinemediaobject"><img src="../../../equations/igamma10.png"></span>
+      </p>
+<p>
+        That lends itself to calculation of the upper integral via rearrangement
+        to:
+      </p>
+<p>
+        7) <span class="inlinemediaobject"><img src="../../../equations/igamma11.png"></span>
+      </p>
+<p>
+        Refer to the documentation for <a class="link" href="../powers/powm1.html" title="powm1">powm1</a>
+        and <a class="link" href="tgamma.html" title="Gamma">tgamma1pm1</a> for details
+        of their implementation. Note however that the precision of <a class="link" href="tgamma.html" title="Gamma">tgamma1pm1</a>
+        is capped to either around 35 digits, or to that of the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> associated with type T - if there is one - whichever
+        of the two is the greater. That therefore imposes a similar limit on the
+        precision of this function in this region.
+      </p>
+<p>
+        For <span class="emphasis"><em>x < 1.1</em></span> the crossover point where the result
+        is ~0.5 no longer occurs for <span class="emphasis"><em>x ~ y</em></span>. Using <span class="emphasis"><em>x
+        * 0.75 < a</em></span> as the crossover criterion for <span class="emphasis"><em>0.5 <
+        x <= 1.1</em></span> keeps the maximum value computed (whether it's the
+        upper or lower interval) to around 0.75. Likewise for <span class="emphasis"><em>x <= 0.5</em></span>
+        then using <span class="emphasis"><em>-0.4 / log(x) < a</em></span> as the crossover criterion
+        keeps the maximum value computed to around 0.7 (whether it's the upper or
+        lower interval).
+      </p>
+<p>
+        There are two special cases used when a is an integer or half integer, and
+        the crossover conditions listed above indicate that we should compute the
+        upper integral Q. If a is an integer in the range <span class="emphasis"><em>1 <= a <
+        30</em></span> then the following finite sum is used:
+      </p>
+<p>
+        9) <span class="inlinemediaobject"><img src="../../../equations/igamma1f.png"></span>
+      </p>
+<p>
+        While for half integers in the range <span class="emphasis"><em>0.5 <= a < 30</em></span>
+        then the following finite sum is used:
+      </p>
+<p>
+        10) <span class="inlinemediaobject"><img src="../../../equations/igamma2f.png"></span>
+      </p>
+<p>
+        These are both more stable and more efficient than the continued fraction
+        alternative.
+      </p>
+<p>
+        When the argument <span class="emphasis"><em>a</em></span> is large, and <span class="emphasis"><em>x ~ a</em></span>
+        then the series (4) and continued fraction (5) above are very slow to converge.
+        In this area an expansion due to Temme is used:
+      </p>
+<p>
+        11) <span class="inlinemediaobject"><img src="../../../equations/igamma16.png"></span>
+      </p>
+<p>
+        12) <span class="inlinemediaobject"><img src="../../../equations/igamma17.png"></span>
+      </p>
+<p>
+        13) <span class="inlinemediaobject"><img src="../../../equations/igamma18.png"></span>
+      </p>
+<p>
+        14) <span class="inlinemediaobject"><img src="../../../equations/igamma19.png"></span>
+      </p>
+<p>
+        The double sum is truncated to a fixed number of terms - to give a specific
+        target precision - and evaluated as a polynomial-of-polynomials. There are
+        versions for up to 128-bit long double precision: types requiring greater
+        precision than that do not use these expansions. The coefficients C<sub>k</sub><sup>n</sup> are
+        computed in advance using the recurrence relations given by Temme. The zone
+        where these expansions are used is
+      </p>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="number">20</span><span class="special">)</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><</span> <span class="number">200</span><span class="special">)</span> <span class="special">&&</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special"><</span> <span class="number">0.4</span>
+</pre>
+<p>
+        And:
+      </p>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="number">200</span><span class="special">)</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special"><</span> <span class="number">4.5</span><span class="special">/</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span>
+</pre>
+<p>
+        The latter range is valid for all types up to 128-bit long doubles, and is
+        designed to ensure that the result is larger than 10<sup>-6</sup>, the first range is
+        used only for types up to 80-bit long doubles. These domains are narrower
+        than the ones recommended by either Temme or Didonato and Morris. However,
+        using a wider range results in large and inexact (i.e. computed) values being
+        passed to the <code class="computeroutput"><span class="identifier">exp</span></code> and <code class="computeroutput"><span class="identifier">erfc</span></code> functions resulting in significantly
+        larger error rates. In other words there is a fine trade off here between
+        efficiency and error. The current limits should keep the number of terms
+        required by (4) and (5) to no more than ~20 at double precision.
+      </p>
+<p>
+        For the normalised incomplete gamma functions, calculation of the leading
+        power terms is central to the accuracy of the function. For smallish a and
+        x combining the power terms with the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> gives the greatest accuracy:
+      </p>
+<p>
+        15) <span class="inlinemediaobject"><img src="../../../equations/igamma12.png"></span>
+      </p>
+<p>
+        In the event that this causes underflow/overflow then the exponent can be
+        reduced by a factor of <span class="emphasis"><em>a</em></span> and brought inside the power
+        term.
+      </p>
+<p>
+        When a and x are large, we end up with a very large exponent with a base
+        near one: this will not be computed accurately via the pow function, and
+        taking logs simply leads to cancellation errors. The worst of the errors
+        can be avoided by using:
+      </p>
+<p>
+        16) <span class="inlinemediaobject"><img src="../../../equations/igamma13.png"></span>
+      </p>
+<p>
+        when <span class="emphasis"><em>a-x</em></span> is small and a and x are large. There is still
+        a subtraction and therefore some cancellation errors - but the terms are
+        small so the absolute error will be small - and it is absolute rather than
+        relative error that counts in the argument to the <span class="emphasis"><em>exp</em></span>
+        function. Note that for sufficiently large a and x the errors will still
+        get you eventually, although this does delay the inevitable much longer than
+        other methods. Use of <span class="emphasis"><em>log(1+x)-x</em></span> here is inspired by
+        Temme (see references below).
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma.h5"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma.references"></a></span><a class="link" href="igamma.html#math_toolkit.sf_gamma.igamma.references">References</a>
+      </h5>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            N. M. Temme, A Set of Algorithms for the Incomplete Gamma Functions,
+            Probability in the Engineering and Informational Sciences, 8, 1994.
+          </li>
+<li class="listitem">
+            N. M. Temme, The Asymptotic Expansion of the Incomplete Gamma Functions,
+            Siam J. Math Anal. Vol 10 No 4, July 1979, p757.
+          </li>
+<li class="listitem">
+            A. R. Didonato and A. H. Morris, Computation of the Incomplete Gamma
+            Function Ratios and their Inverse. ACM TOMS, Vol 12, No 4, Dec 1986,
+            p377.
+          </li>
+<li class="listitem">
+            W. Gautschi, The Incomplete Gamma Functions Since Tricomi, In Tricomi's
+            Ideas and Contemporary Applied Mathematics, Atti dei Convegni Lincei,
+            n. 147, Accademia Nazionale dei Lincei, Roma, 1998, pp. 203--237. http://citeseer.ist.psu.edu/gautschi98incomplete.html
+          </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="gamma_ratios.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="igamma_inv.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma_inv.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/igamma_inv.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,242 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Incomplete Gamma Function Inverses</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="igamma.html" title="Incomplete Gamma Functions">
+<link rel="next" href="gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="igamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_derivatives.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_igamma_inv">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.igamma_inv"></a><a class="link" href="igamma_inv.html" title="Incomplete Gamma Function Inverses">Incomplete Gamma Function
+      Inverses</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma_inv.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma_inv.synopsis"></a></span><a class="link" href="igamma_inv.html#math_toolkit.sf_gamma.igamma_inv.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma_inv.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma_inv.description"></a></span><a class="link" href="igamma_inv.html#math_toolkit.sf_gamma.igamma_inv.description">Description</a>
+      </h5>
+<p>
+        There are four <a href="http://mathworld.wolfram.com/IncompleteGammaFunction.html" target="_top">incomplete
+        gamma function</a> inverses which either compute <span class="emphasis"><em>x</em></span>
+        given <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>p</em></span> or <span class="emphasis"><em>q</em></span>,
+        or else compute <span class="emphasis"><em>a</em></span> given <span class="emphasis"><em>x</em></span> and either
+        <span class="emphasis"><em>p</em></span> or <span class="emphasis"><em>q</em></span>.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types,
+        otherwise the return type is simply T1.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          When people normally talk about the inverse of the incomplete gamma function,
+          they are talking about inverting on parameter <span class="emphasis"><em>x</em></span>. These
+          are implemented here as gamma_p_inv and gamma_q_inv, and are by far the
+          most efficient of the inverses presented here.
+        </p>
+<p>
+          The inverse on the <span class="emphasis"><em>a</em></span> parameter finds use in some statistical
+          applications but has to be computed by rather brute force numerical techniques
+          and is consequently several times slower. These are implemented here as
+          gamma_p_inva and gamma_q_inva.
+        </p>
+</td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value x such that: <code class="computeroutput"><span class="identifier">q</span>
+        <span class="special">=</span> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a > 0</em></span> and <span class="emphasis"><em>1 >= p,q >= 0</em></span>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value x such that: <code class="computeroutput"><span class="identifier">p</span>
+        <span class="special">=</span> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>a > 0</em></span> and <span class="emphasis"><em>1 >= p,q >= 0</em></span>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value a such that: <code class="computeroutput"><span class="identifier">q</span>
+        <span class="special">=</span> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>x > 0</em></span> and <span class="emphasis"><em>1 >= p,q >= 0</em></span>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns a value a such that: <code class="computeroutput"><span class="identifier">p</span>
+        <span class="special">=</span> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
+        <span class="identifier">x</span><span class="special">);</span></code>
+      </p>
+<p>
+        Requires: <span class="emphasis"><em>x > 0</em></span> and <span class="emphasis"><em>1 >= p,q >= 0</em></span>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma_inv.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma_inv.accuracy"></a></span><a class="link" href="igamma_inv.html#math_toolkit.sf_gamma.igamma_inv.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The accuracy of these functions doesn't vary much by platform or by the type
+        T. Given that these functions are computed by iterative methods, they are
+        deliberately "detuned" so as not to be too accurate: it is in any
+        case impossible for these function to be more accurate than the regular forward
+        incomplete gamma functions. In practice, the accuracy of these functions
+        is very similar to that of <a class="link" href="igamma.html" title="Incomplete Gamma Functions">gamma_p</a>
+        and <a class="link" href="igamma.html" title="Incomplete Gamma Functions">gamma_q</a> functions.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma_inv.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma_inv.testing"></a></span><a class="link" href="igamma_inv.html#math_toolkit.sf_gamma.igamma_inv.testing">Testing</a>
+      </h5>
+<p>
+        There are two sets of tests:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            Basic sanity checks attempt to "round-trip" from <span class="emphasis"><em>a</em></span>
+            and <span class="emphasis"><em>x</em></span> to <span class="emphasis"><em>p</em></span> or <span class="emphasis"><em>q</em></span>
+            and back again. These tests have quite generous tolerances: in general
+            both the incomplete gamma, and its inverses, change so rapidly that round
+            tripping to more than a couple of significant digits isn't possible.
+            This is especially true when <span class="emphasis"><em>p</em></span> or <span class="emphasis"><em>q</em></span>
+            is very near one: in this case there isn't enough "information content"
+            in the input to the inverse function to get back where you started.
+          </li>
+<li class="listitem">
+            Accuracy checks using high precision test values. These measure the accuracy
+            of the result, given exact input values.
+          </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.sf_gamma.igamma_inv.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.igamma_inv.implementation"></a></span><a class="link" href="igamma_inv.html#math_toolkit.sf_gamma.igamma_inv.implementation">Implementation</a>
+      </h5>
+<p>
+        The functions gamma_p_inv and gamma_q_inv
+        share a common implementation.
+      </p>
+<p>
+        First an initial approximation is computed using the methodology described
+        in:
+      </p>
+<p>
+        <a href="http://portal.acm.org/citation.cfm?id=23109&coll=portal&dl=ACM" target="_top">A.
+        R. Didonato and A. H. Morris, Computation of the Incomplete Gamma Function
+        Ratios and their Inverse, ACM Trans. Math. Software 12 (1986), 377-393.</a>
+      </p>
+<p>
+        Finally, the last few bits are cleaned up using Halley iteration, the iteration
+        limit is set to 2/3 of the number of bits in T, which by experiment is sufficient
+        to ensure that the inverses are at least as accurate as the normal incomplete
+        gamma functions. In testing, no more than 3 iterations are required to produce
+        a result as accurate as the forward incomplete gamma function, and in many
+        cases only one iteration is required.
+      </p>
+<p>
+        The functions gamma_p_inva and gamma_q_inva also share a common implementation
+        but are handled separately from gamma_p_inv and gamma_q_inv.
+      </p>
+<p>
+        An initial approximation for <span class="emphasis"><em>a</em></span> is computed very crudely
+        so that <span class="emphasis"><em>gamma_p(a, x) ~ 0.5</em></span>, this value is then used
+        as a starting point for a generic derivative-free root finding algorithm.
+        As a consequence, these two functions are rather more expensive to compute
+        than the gamma_p_inv or gamma_q_inv functions. Even so, the root is usually
+        found in fewer than 10 iterations.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="igamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="gamma_derivatives.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/lgamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/lgamma.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,468 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Log Gamma</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="tgamma.html" title="Gamma">
+<link rel="next" href="digamma.html" title="Digamma">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tgamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="digamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_lgamma">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.lgamma"></a><a class="link" href="lgamma.html" title="Log Gamma">Log Gamma</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.lgamma.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.synopsis"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">int</span><span class="special">*</span> <span class="identifier">sign</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">int</span><span class="special">*</span> <span class="identifier">sign</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.lgamma.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.description"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.description">Description</a>
+      </h5>
+<p>
+        The lgamma function
+        is defined by:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm1.png"></span>
+      </p>
+<p>
+        The second form of the function takes a pointer to an integer, which if non-null
+        is set on output to the sign of tgamma(z).
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/lgamma.png" align="middle"></span>
+      </p>
+<p>
+        There are effectively two versions of this function internally: a fully generic
+        version that is slow, but reasonably accurate, and a much more efficient
+        approximation that is used where the number of digits in the significand
+        of T correspond to a certain <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>. In practice, any built-in floating-point type you will
+        encounter has an appropriate <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> defined for it. It is also possible, given enough machine
+        time, to generate further <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>'s
+        using the program libs/math/tools/lanczos_generator.cpp.
+      </p>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the result is of type <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, or type T
+        otherwise.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.lgamma.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.accuracy"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to the GSL-1.9, GNU C Lib, <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+        C Library</a> and Cephes
+        libraries. Unless otherwise specified any floating point type that is narrower
+        than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<p>
+        Note that while the relative errors near the positive roots of lgamma are
+        very low, the lgamma function has an infinite number of irrational roots
+        for negative arguments: very close to these negative roots only a low absolute
+        error can be guaranteed.
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Factorials and Half factorials
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near Zero
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near 1 or 2
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near a Negative Pole
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.88 Mean=0.14
+                </p>
+                <p>
+                  (GSL=33) (Cephes=1.5)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.96 Mean=0.46
+                </p>
+                <p>
+                  (GSL=5.2) (Cephes=1.1)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.86 Mean=0.46
+                </p>
+                <p>
+                  (GSL=1168) (Cephes~500000)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.2 Mean=1.3
+                </p>
+                <p>
+                  (GSL=25) (Cephes=1.6)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA32 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.9 Mean=0.43
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=1.7 Mean=0.49)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.4 Mean=0.57
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak= 0.96 Mean=0.54)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.86 Mean=0.35
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=0.74 Mean=0.26)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6.0 Mean=1.8
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=3.0 Mean=0.86)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA64 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.12
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Pek=1.2 Mean=0.6
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.86 Mean=0.16
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.3 Mean=0.69
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.96 Mean=0.13
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.53
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.9 Mean=0.4
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.0 Mean=0.9
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.sf_gamma.lgamma.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.testing"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.testing">Testing</a>
+      </h5>
+<p>
+        The main tests for this function involve comparisons against the logs of
+        the factorials which can be independently calculated to very high accuracy.
+      </p>
+<p>
+        Random tests in key problem areas are also used.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.lgamma.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.implementation"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.implementation">Implementation</a>
+      </h5>
+<p>
+        The generic version of this function is implemented by combining the series
+        and continued fraction representations for the incomplete gamma function:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm2.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>l</em></span> is an arbitrary integration limit: choosing
+        <code class="literal">l = max(10, a)</code> seems to work fairly well. For negative
+        <span class="emphasis"><em>z</em></span> the logarithm version of the reflection formula is
+        used:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm3.png"></span>
+      </p>
+<p>
+        For types of known precision, the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> is used, a traits class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lanczos</span><span class="special">::</span><span class="identifier">lanczos_traits</span></code>
+        maps type T to an appropriate approximation. The logarithmic version of the
+        <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a> is:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm4.png"></span>
+      </p>
+<p>
+        Where L<sub>e,g</sub>   is the Lanczos sum, scaled by e<sup>g</sup>.
+      </p>
+<p>
+        As before the reflection formula is used for <span class="emphasis"><em>z < 0</em></span>.
+      </p>
+<p>
+        When z is very near 1 or 2, then the logarithmic version of the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> suffers very badly from cancellation error: indeed for
+        values sufficiently close to 1 or 2, arbitrarily large relative errors can
+        be obtained (even though the absolute error is tiny).
+      </p>
+<p>
+        For types with up to 113 bits of precision (up to and including 128-bit long
+        doubles), root-preserving rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> are used over the intervals [1,2] and [2,3]. Over the interval
+        [2,3] the approximation form used is:
+      </p>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">));</span>
+</pre>
+<p>
+        Where Y is a constant, and R(z-2) is the rational approximation: optimised
+        so that it's absolute error is tiny compared to Y. In addition small values
+        of z greater than 3 can handled by argument reduction using the recurrence
+        relation:
+      </p>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+        Over the interval [1,2] two approximations have to be used, one for small
+        z uses:
+      </p>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">)(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">));</span>
+</pre>
+<p>
+        Once again Y is a constant, and R(z-1) is optimised for low absolute error
+        compared to Y. For z > 1.5 the above form wouldn't converge to a minimax
+        solution but this similar form does:
+      </p>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="number">1</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">));</span>
+</pre>
+<p>
+        Finally for z < 1 the recurrence relation can be used to move to z >
+        1:
+      </p>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+        Note that while this involves a subtraction, it appears not to suffer from
+        cancellation error: as z decreases from 1 the <code class="computeroutput"><span class="special">-</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span></code> term grows positive much more rapidly than
+        the <code class="computeroutput"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span></code> term becomes negative. So in this specific
+        case, significant digits are preserved, rather than cancelled.
+      </p>
+<p>
+        For other types which do have a <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> defined for them the current solution is as follows:
+        imagine we balance the two terms in the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> by dividing the power term by its value at <span class="emphasis"><em>z
+        = 1</em></span>, and then multiplying the Lanczos coefficients by the same
+        value. Now each term will take the value 1 at <span class="emphasis"><em>z = 1</em></span>
+        and we can rearrange the power terms in terms of log1p. Likewise if we subtract
+        1 from the Lanczos sum part (algebraically, by subtracting the value of each
+        term at <span class="emphasis"><em>z = 1</em></span>), we obtain a new summation that can be
+        also be fed into log1p. Crucially, all of the terms tend to zero, as <span class="emphasis"><em>z
+        -> 1</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm5.png"></span>
+      </p>
+<p>
+        The C<sub>k</sub>   terms in the above are the same as in the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>.
+      </p>
+<p>
+        A similar rearrangement can be performed at <span class="emphasis"><em>z = 2</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/lgamm6.png"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tgamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="digamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/tgamma.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_gamma/tgamma.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,461 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Gamma</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="prev" href="../sf_gamma.html" title="Gamma Functions">
+<link rel="next" href="lgamma.html" title="Log Gamma">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_gamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="lgamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_gamma_tgamma">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_gamma.tgamma"></a><a class="link" href="tgamma.html" title="Gamma">Gamma</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_gamma.tgamma.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.synopsis"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">dz</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">dz</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_gamma.tgamma.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.description"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the "true gamma" (hence name tgamma) of value z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamm1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/tgamma.png" align="middle"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        There are effectively two versions of the tgamma
+        function internally: a fully generic version that is slow, but reasonably
+        accurate, and a much more efficient approximation that is used where the
+        number of digits in the significand of T correspond to a certain <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a>. In practice any built in floating point type you will
+        encounter has an appropriate <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> defined for it. It is also possible, given enough machine
+        time, to generate further <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>'s
+        using the program libs/math/tools/lanczos_generator.cpp.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the result is <code class="computeroutput"><span class="keyword">double</span></code>
+        when T is an integer type, and T otherwise.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">dz</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">dz</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">dz</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>.
+        Internally the implementation does not make use of the addition and subtraction
+        implied by the definition, leading to accurate results even for very small
+        <code class="computeroutput"><span class="identifier">dz</span></code>. However, the implementation
+        is capped to either 35 digit accuracy, or to the precision of the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> associated with type T, whichever is more accurate.
+      </p>
+<p>
+        The return type of this function is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the result is <code class="computeroutput"><span class="keyword">double</span></code>
+        when T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.tgamma.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.accuracy"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to the GSL-1.9, GNU C Lib, <a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+        C Library</a> and Cephes
+        libraries. Unless otherwise specified any floating point type that is narrower
+        than the one shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Factorials and Half factorials
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near Zero
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near 1 or 2
+                </p>
+              </th>
+<th>
+                <p>
+                  Values Near a Negative Pole
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32 Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.9 Mean=0.7
+                </p>
+                <p>
+                  (GSL=3.9)
+                </p>
+                <p>
+                  (Cephes=3.0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.0 Mean=1.1
+                </p>
+                <p>
+                  (GSL=4.5)
+                </p>
+                <p>
+                  (Cephes=1)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.0 Mean=1.1
+                </p>
+                <p>
+                  (GSL=7.9)
+                </p>
+                <p>
+                  (Cephes=1.0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.6 Mean=1.3
+                </p>
+                <p>
+                  (GSL=2.5)
+                </p>
+                <p>
+                  (Cephes=2.7)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA32 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=300 Mean=49.5
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=395 Mean=89)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.0 Mean=1.4
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=11 Mean=3.3)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.0 Mean=1.8
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=0.92 Mean=0.2)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=157 Mean=65
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak=205 Mean=108)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Linux IA64 / GCC
+                </p>
+              </td>
+<td>
+                <p>
+                  GNU C Lib
+                  Peak 2.8 Mean=0.9
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0.7)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.8 Mean=1.5
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.8 Mean=1.5
+                </p>
+                <p>
+                  (GNU C Lib
+                  Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.0 Mean=1.7 (<a href="http://www.gnu.org/software/libc/" target="_top">GNU
+                  C Lib</a> Peak 0)
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2.5 Mean=1.1
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.5 Mean=1.7
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3.5 Mean=1.6
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=5.2 Mean=1.92
+                </p>
+                <p>
+                  (<a href="http://docs.hp.com/en/B9106-90010/index.html" target="_top">HP-UX
+                  C Library</a> Peak 0)
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h5>
+<a name="math_toolkit.sf_gamma.tgamma.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.testing"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.testing">Testing</a>
+      </h5>
+<p>
+        The gamma is relatively easy to test: factorials and half-integer factorials
+        can be calculated exactly by other means and compared with the gamma function.
+        In addition, some accuracy tests in known tricky areas were computed at high
+        precision using the generic version of this function.
+      </p>
+<p>
+        The function <code class="computeroutput"><span class="identifier">tgamma1pm1</span></code> is
+        tested against values calculated very naively using the formula <code class="computeroutput"><span class="identifier">tgamma</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">dz</span><span class="special">)-</span><span class="number">1</span></code> with a
+        lanczos approximation accurate to around 100 decimal digits.
+      </p>
+<h5>
+<a name="math_toolkit.sf_gamma.tgamma.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.implementation"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.implementation">Implementation</a>
+      </h5>
+<p>
+        The generic version of the <code class="computeroutput"><span class="identifier">tgamma</span></code>
+        function is implemented by combining the series and continued fraction representations
+        for the incomplete gamma function:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamm2.png"></span>
+      </p>
+<p>
+        where <span class="emphasis"><em>l</em></span> is an arbitrary integration limit: choosing
+        <code class="literal">l = max(10, a)</code> seems to work fairly well.
+      </p>
+<p>
+        For types of known precision the <a class="link" href="../lanczos.html" title="The Lanczos Approximation">Lanczos
+        approximation</a> is used, a traits class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lanczos</span><span class="special">::</span><span class="identifier">lanczos_traits</span></code>
+        maps type T to an appropriate approximation.
+      </p>
+<p>
+        For z in the range -20 < z < 1 then recursion is used to shift to z
+        > 1 via:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamm3.png"></span>
+      </p>
+<p>
+        For very small z, this helps to preserve the identity:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamm4.png"></span>
+      </p>
+<p>
+        For z < -20 the reflection formula:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/gamm5.png"></span>
+      </p>
+<p>
+        is used. Particular care has to be taken to evaluate the <code class="computeroutput"><span class="identifier">z</span>
+        <span class="special">*</span> <span class="identifier">sin</span><span class="special">([</span><span class="identifier">pi</span><span class="special">][</span><span class="identifier">space</span><span class="special">]</span> <span class="special">*</span> <span class="identifier">z</span><span class="special">)</span></code>
+        part: a special routine is used to reduce z prior to multiplying by π   to ensure
+        that the result in is the range [0, π/2]. Without this an excessive amount
+        of error occurs in this region (which is hard enough already, as the rate
+        of change near a negative pole is <span class="emphasis"><em>exceptionally</em></span> high).
+      </p>
+<p>
+        Finally if the argument is a small integer then table lookup of the factorial
+        is used.
+      </p>
+<p>
+        The function <code class="computeroutput"><span class="identifier">tgamma1pm1</span></code> is
+        implemented using rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> in the region <code class="computeroutput"><span class="special">-</span><span class="number">0.5</span> <span class="special"><</span> <span class="identifier">dz</span>
+        <span class="special"><</span> <span class="number">2</span></code>.
+        These are the same approximations (and internal routines) that are used for
+        <a class="link" href="lgamma.html" title="Log Gamma">lgamma</a>, and so aren't
+        detailed further here. The result of the approximation is <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">dz</span><span class="special">+</span><span class="number">1</span><span class="special">))</span></code> which can
+        fed into <a class="link" href="../powers/expm1.html" title="expm1">expm1</a> to give the
+        desired result. Outside the range <code class="computeroutput"><span class="special">-</span><span class="number">0.5</span> <span class="special"><</span> <span class="identifier">dz</span>
+        <span class="special"><</span> <span class="number">2</span></code>
+        then the naive formula <code class="computeroutput"><span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">dz</span><span class="special">)</span>
+        <span class="special">=</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">dz</span><span class="special">+</span><span class="number">1</span><span class="special">)-</span><span class="number">1</span></code>
+        can be used directly.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_gamma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="lgamma.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_poly.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_poly.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Polynomials</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="sf_erf/error_inv.html" title="Error Function Inverses">
+<link rel="next" href="sf_poly/legendre.html" title="Legendre (and Associated) Polynomials">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sf_erf/error_inv.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_poly/legendre.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_poly">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sf_poly"></a><a class="link" href="sf_poly.html" title="Polynomials">Polynomials</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="sf_poly/legendre.html">Legendre (and Associated)
+      Polynomials</a></span></dt>
+<dt><span class="section"><a href="sf_poly/laguerre.html">Laguerre (and Associated)
+      Polynomials</a></span></dt>
+<dt><span class="section">Hermite Polynomials</span></dt>
+<dt><span class="section">Spherical Harmonics</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sf_erf/error_inv.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sf_poly/legendre.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/hermite.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/hermite.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,270 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Hermite Polynomials</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_poly.html" title="Polynomials">
+<link rel="prev" href="laguerre.html" title="Laguerre (and Associated) Polynomials">
+<link rel="next" href="sph_harm.html" title="Spherical Harmonics">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="laguerre.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_harm.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_poly_hermite">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_poly.hermite"></a><a class="link" href="hermite.html" title="Hermite Polynomials">Hermite Polynomials</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_poly.hermite.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.hermite.synopsis"></a></span><a class="link" href="hermite.html#math_toolkit.sf_poly.hermite.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">hermite</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Hn</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Hnm1</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_poly.hermite.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.hermite.description"></a></span><a class="link" href="hermite.html#math_toolkit.sf_poly.hermite.description">Description</a>
+      </h5>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: note than when there is a single
+        template argument the result is the same type as that argument or <code class="computeroutput"><span class="keyword">double</span></code> if the template argument is an integer
+        type.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the value of the Hermite Polynomial of order <span class="emphasis"><em>n</em></span>
+        at point <span class="emphasis"><em>x</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hermite_0.png"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        The following graph illustrates the behaviour of the first few Hermite Polynomials:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/hermite.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Hn</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Hnm1</span><span class="special">);</span>
+</pre>
+<p>
+        Implements the three term recurrence relation for the Hermite polynomials,
+        this function can be used to create a sequence of values evaluated at the
+        same <span class="emphasis"><em>x</em></span>, and for rising <span class="emphasis"><em>n</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/hermite_1.png"></span>
+      </p>
+<p>
+        For example we could produce a vector of the first 10 polynomial values using:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span>  <span class="comment">// Abscissa value</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">;</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">hermite</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">hermite</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">hermite_next</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">],</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">-</span><span class="number">1</span><span class="special">]));</span>
+</pre>
+<p>
+        Formally the arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">n</span></dt>
+<dd><p>
+              The degree <span class="emphasis"><em>n</em></span> of the last polynomial calculated.
+            </p></dd>
+<dt><span class="term">x</span></dt>
+<dd><p>
+              The abscissa value
+            </p></dd>
+<dt><span class="term">Hn</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n</em></span>.
+            </p></dd>
+<dt><span class="term">Hnm1</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n-1</em></span>.
+            </p></dd>
+</dl>
+</div>
+<h5>
+<a name="math_toolkit.sf_poly.hermite.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.hermite.accuracy"></a></span><a class="link" href="hermite.html#math_toolkit.sf_poly.hermite.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows peak errors (in units of epsilon) for various domains
+        of input arguments. Note that only results for the widest floating point
+        type on the system are given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_poly.hermite.peak_errors_in_the_hermite_polyn"></a><p class="title"><b>Table 3.19. Peak Errors In the Hermite Polynomial</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Hermite Polynomial">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4.5 Mean=1.5
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6 Mean=2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6 Mean=2
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6 Mean=4
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that the worst errors occur when the degree increases, values greater
+        than ~120 are very unlikely to produce sensible results, especially in the
+        associated polynomial case when the order is also large. Further the relative
+        errors are likely to grow arbitrarily large when the function is very close
+        to a root.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.hermite.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.hermite.testing"></a></span><a class="link" href="hermite.html#math_toolkit.sf_poly.hermite.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot tests of values calculated using functions.wolfram.com,
+        and randomly generated test data are used: the test data was computed using
+        NTL::RR at 1000-bit
+        precision.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.hermite.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.hermite.implementation"></a></span><a class="link" href="hermite.html#math_toolkit.sf_poly.hermite.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented using the stable three term recurrence relations.
+        These relations guarentee low absolute error but cannot guarentee low relative
+        error near one of the roots of the polynomials.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="laguerre.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sph_harm.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/laguerre.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/laguerre.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,443 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Laguerre (and Associated) Polynomials</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_poly.html" title="Polynomials">
+<link rel="prev" href="legendre.html" title="Legendre (and Associated) Polynomials">
+<link rel="next" href="hermite.html" title="Hermite Polynomials">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="legendre.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="hermite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_poly_laguerre">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_poly.laguerre"></a><a class="link" href="laguerre.html" title="Laguerre (and Associated) Polynomials">Laguerre (and Associated)
+      Polynomials</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_poly.laguerre.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.laguerre.synopsis"></a></span><a class="link" href="laguerre.html#math_toolkit.sf_poly.laguerre.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">laguerre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
+
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_poly.laguerre.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.laguerre.description"></a></span><a class="link" href="laguerre.html#math_toolkit.sf_poly.laguerre.description">Description</a>
+      </h5>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: note than when there is a single
+        template argument the result is the same type as that argument or <code class="computeroutput"><span class="keyword">double</span></code> if the template argument is an integer
+        type.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the value of the Laguerre Polynomial of order <span class="emphasis"><em>n</em></span>
+        at point <span class="emphasis"><em>x</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/laguerre_0.png"></span>
+      </p>
+<p>
+        The following graph illustrates the behaviour of the first few Laguerre Polynomials:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/laguerre.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the Associated Laguerre polynomial of degree <span class="emphasis"><em>n</em></span>
+        and order <span class="emphasis"><em>m</em></span> at point <span class="emphasis"><em>x</em></span>:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/laguerre_1.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
+</pre>
+<p>
+        Implements the three term recurrence relation for the Laguerre polynomials,
+        this function can be used to create a sequence of values evaluated at the
+        same <span class="emphasis"><em>x</em></span>, and for rising <span class="emphasis"><em>n</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/laguerre_2.png"></span>
+      </p>
+<p>
+        For example we could produce a vector of the first 10 polynomial values using:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span>  <span class="comment">// Abscissa value</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">;</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre_next</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">],</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">-</span><span class="number">1</span><span class="special">]));</span>
+</pre>
+<p>
+        Formally the arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">n</span></dt>
+<dd><p>
+              The degree <span class="emphasis"><em>n</em></span> of the last polynomial calculated.
+            </p></dd>
+<dt><span class="term">x</span></dt>
+<dd><p>
+              The abscissa value
+            </p></dd>
+<dt><span class="term">Ln</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n</em></span>.
+            </p></dd>
+<dt><span class="term">Lnm1</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n-1</em></span>.
+            </p></dd>
+</dl>
+</div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
+</pre>
+<p>
+        Implements the three term recurrence relation for the Associated Laguerre
+        polynomials, this function can be used to create a sequence of values evaluated
+        at the same <span class="emphasis"><em>x</em></span>, and for rising degree <span class="emphasis"><em>n</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/laguerre_3.png"></span>
+      </p>
+<p>
+        For example we could produce a vector of the first 10 polynomial values using:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span>  <span class="comment">// Abscissa value</span>
+<span class="keyword">int</span> <span class="identifier">m</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>      <span class="comment">// order</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">;</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre_next</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">],</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">-</span><span class="number">1</span><span class="special">]));</span>
+</pre>
+<p>
+        Formally the arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">n</span></dt>
+<dd><p>
+              The degree of the last polynomial calculated.
+            </p></dd>
+<dt><span class="term">m</span></dt>
+<dd><p>
+              The order of the Associated Polynomial.
+            </p></dd>
+<dt><span class="term">x</span></dt>
+<dd><p>
+              The abscissa value.
+            </p></dd>
+<dt><span class="term">Ln</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n</em></span>.
+            </p></dd>
+<dt><span class="term">Lnm1</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>n-1</em></span>.
+            </p></dd>
+</dl>
+</div>
+<h5>
+<a name="math_toolkit.sf_poly.laguerre.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.laguerre.accuracy"></a></span><a class="link" href="laguerre.html#math_toolkit.sf_poly.laguerre.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows peak errors (in units of epsilon) for various domains
+        of input arguments. Note that only results for the widest floating point
+        type on the system are given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_poly.laguerre.peak_errors_in_the_laguerre_poly"></a><p class="title"><b>Table 3.17. Peak Errors In the Laguerre Polynomial</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Laguerre Polynomial">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=3000 Mean=185
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1x10<sup>4</sup> Mean=828
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1x10<sup>4</sup> Mean=828
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=680 Mean=40
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_poly.laguerre.peak_errors_in_the_associated_la"></a><p class="title"><b>Table 3.18. Peak Errors In the Associated Laguerre Polynomial</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Associated Laguerre Polynomial">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=433 Mean=11
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=61.4 Mean=19.5
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=61.4 Mean=19.5
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=540 Mean=13.94
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that the worst errors occur when the degree increases, values greater
+        than ~120 are very unlikely to produce sensible results, especially in the
+        associated polynomial case when the order is also large. Further the relative
+        errors are likely to grow arbitrarily large when the function is very close
+        to a root.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.laguerre.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.laguerre.testing"></a></span><a class="link" href="laguerre.html#math_toolkit.sf_poly.laguerre.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot tests of values calculated using functions.wolfram.com,
+        and randomly generated test data are used: the test data was computed using
+        NTL::RR at 1000-bit
+        precision.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.laguerre.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.laguerre.implementation"></a></span><a class="link" href="laguerre.html#math_toolkit.sf_poly.laguerre.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented using the stable three term recurrence relations.
+        These relations guarentee low absolute error but cannot guarentee low relative
+        error near one of the roots of the polynomials.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="legendre.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="hermite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/legendre.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/legendre.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,698 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Legendre (and Associated) Polynomials</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_poly.html" title="Polynomials">
+<link rel="prev" href="../sf_poly.html" title="Polynomials">
+<link rel="next" href="laguerre.html" title="Laguerre (and Associated) Polynomials">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_poly.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="laguerre.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_poly_legendre">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_poly.legendre"></a><a class="link" href="legendre.html" title="Legendre (and Associated) Polynomials">Legendre (and Associated)
+      Polynomials</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_poly.legendre.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.legendre.synopsis"></a></span><a class="link" href="legendre.html#math_toolkit.sf_poly.legendre.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">legendre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_q</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_q</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
+
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: note than when there is a single
+        template argument the result is the same type as that argument or <code class="computeroutput"><span class="keyword">double</span></code> if the template argument is an integer
+        type.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.legendre.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.legendre.description"></a></span><a class="link" href="legendre.html#math_toolkit.sf_poly.legendre.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the Legendre Polynomial of the first kind:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_0.png"></span>
+      </p>
+<p>
+        Requires -1 <= x <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        Negative orders are handled via the reflection formula:
+      </p>
+<p>
+        P<sub>-l-1</sub>(x) = P<sub>l</sub>(x)
+      </p>
+<p>
+        The following graph illustrates the behaviour of the first few Legendre Polynomials:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/legendre_p.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the associated Legendre polynomial of the first kind:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_1.png"></span>
+      </p>
+<p>
+        Requires -1 <= x <= 1, otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
+      </p>
+<p>
+        Negative values of <span class="emphasis"><em>l</em></span> and <span class="emphasis"><em>m</em></span> are
+        handled via the identity relations:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_3.png"></span>
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The definition of the associated Legendre polynomial used here includes
+          a leading Condon-Shortley phase term of (-1)<sup>m</sup>. This matches the definition
+          given by Abramowitz and Stegun (8.6.6) and that used by Mathworld
+          and <a href="http://documents.wolfram.com/mathematica/functions/LegendreP" target="_top">Mathematica's
+          LegendreP function</a>. However, uses in the literature do not always
+          include this phase term, and strangely the specification for the associated
+          Legendre function in the C++ TR1 (assoc_legendre) also omits it, in spite
+          of stating that it uses Abramowitz and Stegun as the final arbiter on these
+          matters.
+        </p>
+<p>
+          See:
+        </p>
+<p>
+          <a href="http://mathworld.wolfram.com/LegendrePolynomial.html" target="_top">Weisstein,
+          Eric W. "Legendre Polynomial." From MathWorld--A Wolfram Web
+          Resource</a>.
+        </p>
+<p>
+          Abramowitz, M. and Stegun, I. A. (Eds.). "Legendre Functions"
+          and "Orthogonal Polynomials." Ch. 22 in Chs. 8 and 22 in Handbook
+          of Mathematical Functions with Formulas, Graphs, and Mathematical Tables,
+          9th printing. New York: Dover, pp. 331-339 and 771-802, 1972.
+        </p>
+</td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_q</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_q</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the value of the Legendre polynomial that is the second solution
+        to the Legendre differential equation, for example:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_2.png"></span>
+      </p>
+<p>
+        Requires -1 <= x <= 1, otherwise <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
+        is called.
+      </p>
+<p>
+        The following graph illustrates the first few Legendre functions of the second
+        kind:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/legendre_q.png" align="middle"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
+</pre>
+<p>
+        Implements the three term recurrence relation for the Legendre polynomials,
+        this function can be used to create a sequence of values evaluated at the
+        same <span class="emphasis"><em>x</em></span>, and for rising <span class="emphasis"><em>l</em></span>. This
+        recurrence relation holds for Legendre Polynomials of both the first and
+        second kinds.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_4.png"></span>
+      </p>
+<p>
+        For example we could produce a vector of the first 10 polynomial values using:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span>  <span class="comment">// Abscissa value</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">;</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_next</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">],</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">-</span><span class="number">1</span><span class="special">]));</span>
+<span class="comment">// Double check values:</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">assert</span><span class="special">(</span><span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">]</span> <span class="special">==</span> <span class="identifier">legendre_p</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+</pre>
+<p>
+        Formally the arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">l</span></dt>
+<dd><p>
+              The degree of the last polynomial calculated.
+            </p></dd>
+<dt><span class="term">x</span></dt>
+<dd><p>
+              The abscissa value
+            </p></dd>
+<dt><span class="term">Pl</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>l</em></span>.
+            </p></dd>
+<dt><span class="term">Plm1</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>l-1</em></span>.
+            </p></dd>
+</dl>
+</div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
+</pre>
+<p>
+        Implements the three term recurrence relation for the Associated Legendre
+        polynomials, this function can be used to create a sequence of values evaluated
+        at the same <span class="emphasis"><em>x</em></span>, and for rising <span class="emphasis"><em>l</em></span>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/legendre_5.png"></span>
+      </p>
+<p>
+        For example we could produce a vector of the first m+10 polynomial values
+        using:
+      </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span>  <span class="comment">// Abscissa value</span>
+<span class="keyword">int</span> <span class="identifier">m</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>      <span class="comment">// order</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">;</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="identifier">m</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">1</span> <span class="special">+</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_next</span><span class="special">(</span><span class="identifier">l</span> <span class="special">+</span> <span class="number">10</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">],</span> <span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">-</span><span class="number">1</span><span class="special">]));</span>
+<span class="comment">// Double check values:</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
+   <span class="identifier">assert</span><span class="special">(</span><span class="identifier">v</span><span class="special">[</span><span class="identifier">l</span><span class="special">]</span> <span class="special">==</span> <span class="identifier">legendre_p</span><span class="special">(</span><span class="number">10</span> <span class="special">+</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
+</pre>
+<p>
+        Formally the arguments are:
+      </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl class="variablelist">
+<dt><span class="term">l</span></dt>
+<dd><p>
+              The degree of the last polynomial calculated.
+            </p></dd>
+<dt><span class="term">m</span></dt>
+<dd><p>
+              The order of the Associated Polynomial.
+            </p></dd>
+<dt><span class="term">x</span></dt>
+<dd><p>
+              The abscissa value
+            </p></dd>
+<dt><span class="term">Pl</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>l</em></span>.
+            </p></dd>
+<dt><span class="term">Plm1</span></dt>
+<dd><p>
+              The value of the polynomial evaluated at degree <span class="emphasis"><em>l-1</em></span>.
+            </p></dd>
+</dl>
+</div>
+<h5>
+<a name="math_toolkit.sf_poly.legendre.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.legendre.accuracy"></a></span><a class="link" href="legendre.html#math_toolkit.sf_poly.legendre.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows peak errors (in units of epsilon) for various domains
+        of input arguments. Note that only results for the widest floating point
+        type on the system are given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_poly.legendre.peak_errors_in_the_legendre_p_fu"></a><p class="title"><b>Table 3.14. Peak Errors In the Legendre P Function</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Legendre P Function">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  20 < l < 120
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=211 Mean=20
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=300 Mean=33
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=70 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=700 Mean=60
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=70 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=700 Mean=60
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=35 Mean=6
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=292 Mean=41
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_poly.legendre.peak_errors_in_the_associated_le"></a><p class="title"><b>Table 3.15. Peak Errors In the Associated Legendre P Function</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Associated Legendre P Function">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1200 Mean=7
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=80 Mean=5
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=80 Mean=5
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=42 Mean=4
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="math_toolkit.sf_poly.legendre.peak_errors_in_the_legendre_q_fu"></a><p class="title"><b>Table 3.16. Peak Errors In the Legendre Q Function</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Legendre Q Function">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  20 < l < 120
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=50 Mean=7
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=4600 Mean=370
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=51 Mean=8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6000 Mean=480
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=51 Mean=8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6000 Mean=480
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=90 Mean=10
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1700 Mean=140
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that the worst errors occur when the order increases, values greater
+        than ~120 are very unlikely to produce sensible results, especially in the
+        associated polynomial case when the degree is also large. Further the relative
+        errors are likely to grow arbitrarily large when the function is very close
+        to a root.
+      </p>
+<p>
+        No comparisons to other libraries are shown here: there appears to be only
+        one viable implementation method for these functions, the comparisons to
+        other libraries that have been run show identical error rates to those given
+        here.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.legendre.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.legendre.testing"></a></span><a class="link" href="legendre.html#math_toolkit.sf_poly.legendre.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot tests of values calculated using functions.wolfram.com,
+        and randomly generated test data are used: the test data was computed using
+        NTL::RR at 1000-bit
+        precision.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.legendre.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.legendre.implementation"></a></span><a class="link" href="legendre.html#math_toolkit.sf_poly.legendre.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented using the stable three term recurrence relations.
+        These relations guarentee low absolute error but cannot guarentee low relative
+        error near one of the roots of the polynomials.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../sf_poly.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="laguerre.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/sph_harm.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sf_poly/sph_harm.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,298 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Spherical Harmonics</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sf_poly.html" title="Polynomials">
+<link rel="prev" href="hermite.html" title="Hermite Polynomials">
+<link rel="next" href="../bessel.html" title="Bessel Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="hermite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sf_poly_sph_harm">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sf_poly.sph_harm"></a><a class="link" href="sph_harm.html" title="Spherical Harmonics">Spherical Harmonics</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.sf_poly.sph_harm.h0"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.sph_harm.synopsis"></a></span><a class="link" href="sph_harm.html#math_toolkit.sf_poly.sph_harm.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">spherical_harmonic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_r</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_r</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_i</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_i</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sf_poly.sph_harm.h1"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.sph_harm.description"></a></span><a class="link" href="sph_harm.html#math_toolkit.sf_poly.sph_harm.description">Description</a>
+      </h5>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T1 and T2 are different types.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a><span class="special">></span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the value of the Spherical Harmonic Y<sub>n</sub><sup>m</sup>(theta, phi):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/spherical_0.png"></span>
+      </p>
+<p>
+        The spherical harmonics Y<sub>n</sub><sup>m</sup>(theta, phi) are the angular portion of the solution
+        to Laplace's equation in spherical coordinates where azimuthal symmetry is
+        not present.
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          Care must be taken in correctly identifying the arguments to this function:
+          θ   is taken as the polar (colatitudinal) coordinate with θ   in [0, π], and φ   as
+          the azimuthal (longitudinal) coordinate with φ   in [0,2π). This is the convention
+          used in Physics, and matches the definition used by <a href="http://documents.wolfram.com/mathematica/functions/SphericalHarmonicY" target="_top">Mathematica
+          in the function SpericalHarmonicY</a>, but is opposite to the usual
+          mathematical conventions.
+        </p>
+<p>
+          Some other sources include an additional Condon-Shortley phase term of
+          (-1)<sup>m</sup> in the definition of this function: note however that our definition
+          of the associated Legendre polynomial already includes this term.
+        </p>
+<p>
+          This implementation returns zero for m > n
+        </p>
+<p>
+          For θ   outside [0, π] and φ   outside [0, 2π] this implementation follows the convention
+          used by Mathematica: the function is periodic with period π   in θ   and 2π   in φ.
+          Please note that this is not the behaviour one would get from a casual
+          application of the function's definition. Cautious users should keep θ   and
+          φ   to the range [0, π] and [0, 2π] respectively.
+        </p>
+<p>
+          See: <a href="http://mathworld.wolfram.com/SphericalHarmonic.html" target="_top">Weisstein,
+          Eric W. "Spherical Harmonic." From MathWorld--A Wolfram Web Resource</a>.
+        </p>
+</td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_r</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_r</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the real part of Y<sub>n</sub><sup>m</sup>(theta, phi):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/spherical_1.png"></span>
+      </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_i</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_i</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the imaginary part of Y<sub>n</sub><sup>m</sup>(theta, phi):
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/spherical_2.png"></span>
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.sph_harm.h2"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.sph_harm.accuracy"></a></span><a class="link" href="sph_harm.html#math_toolkit.sf_poly.sph_harm.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows peak errors for various domains of input arguments.
+        Note that only results for the widest floating point type on the system are
+        given as narrower types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>. Peak errors are the same for both the real and imaginary
+        parts, as the error is dominated by calculation of the associated Legendre
+        polynomials: especially near the roots of the associated Legendre function.
+      </p>
+<p>
+        All values are in units of epsilon.
+      </p>
+<div class="table">
+<a name="math_toolkit.sf_poly.sph_harm.peak_errors_in_the_sperical_harm"></a><p class="title"><b>Table 3.20. Peak Errors In the Sperical Harmonic Functions</b></p>
+<div class="table-contents"><table class="table" summary="Peak Errors In the Sperical Harmonic Functions">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  Errors in range
+                </p>
+                <p>
+                  0 < l < 20
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2x10<sup>4</sup> Mean=700
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  SUSE Linux IA32, g++ 4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2900 Mean=100
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Red Hat Linux IA64, g++ 3.4.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=2900 Mean=100
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=6700 Mean=230
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+        Note that the worst errors occur when the degree increases, values greater
+        than ~120 are very unlikely to produce sensible results, especially when
+        the order is also large. Further the relative errors are likely to grow arbitrarily
+        large when the function is very close to a root.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.sph_harm.h3"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.sph_harm.testing"></a></span><a class="link" href="sph_harm.html#math_toolkit.sf_poly.sph_harm.testing">Testing</a>
+      </h5>
+<p>
+        A mixture of spot tests of values calculated using functions.wolfram.com,
+        and randomly generated test data are used: the test data was computed using
+        NTL::RR at 1000-bit
+        precision.
+      </p>
+<h5>
+<a name="math_toolkit.sf_poly.sph_harm.h4"></a>
+        <span class="phrase"><a name="math_toolkit.sf_poly.sph_harm.implementation"></a></span><a class="link" href="sph_harm.html#math_toolkit.sf_poly.sph_harm.implementation">Implementation</a>
+      </h5>
+<p>
+        These functions are implemented fairly naively using the formulae given above.
+        Some extra care is taken to prevent roundoff error when converting from polar
+        coordinates (so for example the <span class="emphasis"><em>1-x<sup>2</sup></em></span> term used by the
+        associated Legendre functions is calculated without roundoff error using
+        <span class="emphasis"><em>x = cos(theta)</em></span>, and <span class="emphasis"><em>1-x<sup>2</sup> = sin<sup>2</sup>(theta)</em></span>).
+        The limiting factor in the error rates for these functions is the need to
+        calculate values near the roots of the associated Legendre functions.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="hermite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../bessel.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sign_functions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sign_functions.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,240 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Sign Manipulation Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../utils.html" title="Chapter 4. Floating Point Utilities">
+<link rel="prev" href="fpclass.html" title="Floating-Point Classification: Infinities and NaNs">
+<link rel="next" href="fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="fpclass.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sign_functions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sign_functions"></a><a class="link" href="sign_functions.html" title="Sign Manipulation Functions">Sign Manipulation Functions</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.sign_functions.h0"></a>
+      <span class="phrase"><a name="math_toolkit.sign_functions.synopsis"></a></span><a class="link" href="sign_functions.html#math_toolkit.sign_functions.synopsis">Synopsis</a>
+    </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">signbit</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">sign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">copysign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">changesign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.sign_functions.h1"></a>
+      <span class="phrase"><a name="math_toolkit.sign_functions.description"></a></span><a class="link" href="sign_functions.html#math_toolkit.sign_functions.description">Description</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">signbit</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns a non-zero value if the sign bit is set in variable <span class="emphasis"><em>x</em></span>,
+      otherwise <code class="computeroutput"><span class="number">0</span></code>.
+    </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        The return value from this function is zero or <span class="emphasis"><em>not-zero</em></span>
+        and <span class="bold"><strong>not</strong></span> zero or one.
+      </p></td></tr>
+</table></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">int</span> <span class="identifier">sign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      Returns <code class="computeroutput"><span class="number">1</span></code> if <span class="emphasis"><em>x</em></span>
+      <code class="computeroutput"><span class="special">></span> <span class="number">0</span></code>,
+      <code class="computeroutput"><span class="special">-</span><span class="number">1</span></code>
+      if <span class="emphasis"><em>x</em></span> <code class="computeroutput"><span class="special"><</span> <span class="number">0</span></code>, and <code class="computeroutput"><span class="number">0</span></code>
+      if <span class="emphasis"><em>x</em></span> is zero.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">copysign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">&</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Sets the sign of <span class="emphasis"><em>x</em></span> to be the same as the sign of <span class="emphasis"><em>y</em></span>.
+    </p>
+<p>
+      See <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf" target="_top">C99
+      7.12.11.1 The copysign functions</a> for more detail.
+    </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">T</span> <span class="identifier">changesign</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">z</span><span class="special">);</span>
+</pre>
+<p>
+      Returns a floating point number with a binary representation where the signbit
+      is the opposite of the sign bit in <span class="emphasis"><em>x</em></span>, and where the other
+      bits are the same as in <span class="emphasis"><em>x</em></span>.
+    </p>
+<p>
+      This function is widely available, but not specified in any standards.
+    </p>
+<p>
+      Rationale: Not specified by TR1, but <code class="computeroutput"><span class="identifier">changesign</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+      is both easier to read and more efficient than
+    </p>
+<pre class="programlisting"><span class="identifier">copysign</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">signbit</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">?</span> <span class="number">1.0</span> <span class="special">:</span> <span class="special">-</span><span class="number">1.0</span><span class="special">);</span>
+</pre>
+<p>
+      For finite values, this function has the same effect as simple negation, the
+      assignment z = -z, but for nonfinite values, infinities
+      and NaNs, the <code class="computeroutput"><span class="identifier">changesign</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> function
+      may be the only portable way to ensure that the sign bit is changed.
+    </p>
+<h6>
+<a name="math_toolkit.sign_functions.h2"></a>
+      <span class="phrase"><a name="math_toolkit.sign_functions.sign_bits"></a></span><a class="link" href="sign_functions.html#math_toolkit.sign_functions.sign_bits">Sign
+      bits</a>
+    </h6>
+<p>
+      One of the bits in the binary representation of a floating-point number gives
+      the sign, and the remaining bits give the absolute value. That bit is known
+      as the sign bit. The sign bit is set = 1 for negative numbers, and is not set
+      = 0 for positive numbers. (This is true for all binary representations of floating
+      point numbers that are used by modern microprocessors.)
+    </p>
+<p>
+      <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">C++
+      TR1</a> specifies <code class="computeroutput"><span class="identifier">copysign</span></code>
+      functions and function templates for accessing the sign bit.
+    </p>
+<p>
+      For user-defined types (UDT), the sign may be stored in some other way. They
+      may also not provide infinity or NaNs. To use these functions with a UDT, it
+      may be necessary to explicitly specialize then for UDT type T.
+    </p>
+<h6>
+<a name="math_toolkit.sign_functions.h3"></a>
+      <span class="phrase"><a name="math_toolkit.sign_functions.examples"></a></span><a class="link" href="sign_functions.html#math_toolkit.sign_functions.examples">Examples</a>
+    </h6>
+<pre class="programlisting"><span class="identifier">signbit</span><span class="special">(</span><span class="number">3.5</span><span class="special">)</span> <span class="identifier">is</span> <span class="identifier">zero</span> <span class="special">(</span><span class="keyword">or</span> <span class="keyword">false</span><span class="special">)</span>
+<span class="identifier">signbit</span><span class="special">(-</span><span class="number">7.1</span><span class="special">)</span> <span class="identifier">is</span> <span class="number">1</span> <span class="special">(</span><span class="keyword">or</span> <span class="keyword">true</span><span class="special">)</span>
+<span class="identifier">copysign</span><span class="special">(</span><span class="number">4.2</span><span class="special">,</span> <span class="number">7.9</span><span class="special">)</span> <span class="identifier">is</span> <span class="number">4.2</span>
+<span class="identifier">copysign</span><span class="special">(</span><span class="number">3.5</span> <span class="special">-</span><span class="number">1.4</span><span class="special">)</span> <span class="identifier">is</span> <span class="special">-</span><span class="number">3.5</span>
+<span class="identifier">copysign</span><span class="special">(-</span><span class="number">4.2</span><span class="special">,</span> <span class="number">1.0</span><span class="special">)</span> <span class="identifier">is</span> <span class="number">4.2</span>
+<span class="identifier">copysign</span><span class="special">(-</span><span class="number">8.6</span><span class="special">,</span> <span class="special">-</span><span class="number">3.3</span><span class="special">)</span> <span class="identifier">is</span> <span class="special">-</span><span class="number">8.6</span>
+<span class="identifier">changesign</span><span class="special">(</span><span class="number">6.9</span><span class="special">)</span> <span class="identifier">is</span> <span class="special">-</span><span class="number">6.9</span>
+<span class="identifier">changesign</span><span class="special">(-</span><span class="number">1.8</span><span class="special">)</span> <span class="identifier">is</span> <span class="number">1.8</span>
+</pre>
+<h6>
+<a name="math_toolkit.sign_functions.h4"></a>
+      <span class="phrase"><a name="math_toolkit.sign_functions.portability"></a></span><a class="link" href="sign_functions.html#math_toolkit.sign_functions.portability">Portability</a>
+    </h6>
+<p>
+      The library supports the following binary floating-point formats:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          IEEE 754 single precision
+        </li>
+<li class="listitem">
+          IEEE 754 double precision
+        </li>
+<li class="listitem">
+          IEEE 754 extended double precision with 15 exponent bits
+        </li>
+<li class="listitem">
+          Intel extended double precision
+        </li>
+<li class="listitem">
+          PowerPC extended double precision
+        </li>
+<li class="listitem">
+          Motorola 68K extended double precision
+        </li>
+</ul></div>
+<p>
+      The library does not support the VAX floating-point formats. (These are available
+      on VMS, but the default on VMS is the IEEE 754 floating-point format.)
+    </p>
+<p>
+      The main portability issues are:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Unsupported floating point formats
+        </li>
+<li class="listitem">
+          The library depends on the header boost/detail/endian.hpp
+        </li>
+<li class="listitem">
+          Code such as <code class="computeroutput"><span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">__ia64</span><span class="special">)</span> <span class="special">||</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">__ia64__</span><span class="special">)</span> <span class="special">||</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">_M_IA64</span><span class="special">)</span></code> is used to determine the processor type.
+        </li>
+</ul></div>
+<p>
+      The library has passed all tests on the following platforms:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Win32 / MSVC 7.1 / 10.0 / x86
+        </li>
+<li class="listitem">
+          Win32 / Intel C++ 7.1, 8.1, 9.1 / x86
+        </li>
+<li class="listitem">
+          Mac OS X / GCC 3.3, 4.0 / ppc
+        </li>
+<li class="listitem">
+          Linux / Intel C++ 9.1 / x86, ia64
+        </li>
+<li class="listitem">
+          Linux / GCC 3.3 / x86, x64, ia64, ppc, hppa, mips, m68k
+        </li>
+<li class="listitem">
+          Linux / GCC 3.4 / x64
+        </li>
+<li class="listitem">
+          HP-UX / aCC, GCC 4.1 / ia64
+        </li>
+<li class="listitem">
+          HP-UX / aCC / hppa
+        </li>
+<li class="listitem">
+          Tru64 / Compaq C++ 7.1 / alpha
+        </li>
+<li class="listitem">
+          VMS / HP C++ 7.1 / alpha (in IEEE floating point mode)
+        </li>
+<li class="listitem">
+          VMS / HP C++ 7.2 / ia64 (in IEEE floating point mode)
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="fpclass.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sinc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sinc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Sinus Cardinal and Hyperbolic Sinus Cardinal Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="powers/ct_pow.html" title="Compile Time Power of a Runtime Base">
+<link rel="next" href="sinc/sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="powers/ct_pow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sinc/sinc_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sinc">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.sinc"></a><a class="link" href="sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">Sinus Cardinal and Hyperbolic Sinus
+    Cardinal Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="sinc/sinc_overview.html">Sinus Cardinal and Hyperbolic
+      Sinus Cardinal Functions Overview</a></span></dt>
+<dt><span class="section">sinc_pi</span></dt>
+<dt><span class="section">sinhc_pi</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="powers/ct_pow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="sinc/sinc_overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">
+<link rel="prev" href="../sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">
+<link rel="next" href="sinc_pi.html" title="sinc_pi">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../sinc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sinc_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sinc_sinc_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sinc.sinc_overview"></a><a class="link" href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">Sinus Cardinal and Hyperbolic
+      Sinus Cardinal Functions Overview</a>
+</h3></div></div></div>
+<p>
+        The <a href="http://mathworld.wolfram.com/SincFunction.html" target="_top">Sinus Cardinal
+        family of functions</a> (indexed by the family of indices <code class="literal">a
+        > 0</code>) is defined by
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb20.png"></span>
+      </p>
+<p>
+        it sees heavy use in signal processing tasks.
+      </p>
+<p>
+        By analogy, the <a href="http://mathworld.wolfram.com/SinhcFunction.htm" target="_top">Hyperbolic
+        Sinus Cardinal</a> family of functions (also indexed by the family of
+        indices <code class="literal">a > 0</code>) is defined by
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/special_functions_blurb22.png"></span>
+      </p>
+<p>
+        These two families of functions are composed of entire functions.
+      </p>
+<p>
+        These functions (<a class="link" href="sinc_pi.html" title="sinc_pi">sinc_pi</a>
+        and <a class="link" href="sinhc_pi.html" title="sinhc_pi">sinhc_pi</a>) are needed
+        by <a href="http://www.boost.org/libs/math/quaternion/quaternion.html" target="_top">our
+        implementation</a> of quaternions
+        and octonions.
+      </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="emphasis"><em><span class="bold"><strong>Sinus Cardinal of index pi (purple) and
+          Hyperbolic Sinus Cardinal of index pi (red) on R</strong></span></em></span>
+        </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+          <span class="inlinemediaobject"><img src="../../../graphs/sinc_pi_and_sinhc_pi_on_r.png"></span>
+        </p></blockquote></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../sinc.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sinc_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinc_pi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>sinc_pi</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">
+<link rel="prev" href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">
+<link rel="next" href="sinhc_pi.html" title="sinhc_pi">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sinc_overview.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sinhc_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sinc_sinc_pi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sinc.sinc_pi"></a><a class="link" href="sinc_pi.html" title="sinc_pi">sinc_pi</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Computes <a class="link" href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">the Sinus Cardinal</a>
+        of x:
+      </p>
+<pre class="programlisting"><span class="identifier">sinc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
+</pre>
+<p>
+        The second form is for complex numbers, quaternions, octonions etc. Taylor
+        series are used at the origin to ensure accuracy.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/sinc_pi.png" align="middle"></span>
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sinc_overview.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="sinhc_pi.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinhc_pi.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/sinc/sinhc_pi.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>sinhc_pi</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">
+<link rel="prev" href="sinc_pi.html" title="sinc_pi">
+<link rel="next" href="../inv_hyper.html" title="Inverse Hyperbolic Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="sinc_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../inv_hyper.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_sinc_sinhc_pi">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.sinc.sinhc_pi"></a><a class="link" href="sinhc_pi.html" title="sinhc_pi">sinhc_pi</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinhc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span>
+<span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Computes http://mathworld.wolfram.com/SinhcFunction.html <a class="link" href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">the
+        Hyperbolic Sinus Cardinal</a> of x:
+      </p>
+<pre class="programlisting"><span class="identifier">sinhc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
+</pre>
+<p>
+        The second form is for complex numbers, quaternions, octonions etc. Taylor
+        series are used at the origin to ensure accuracy.
+      </p>
+<p>
+        The return type of the first form is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a> when T is an integer type.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/sinhc_pi.png" align="middle"></span>
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sinc_pi.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../inv_hyper.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/spec.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/spec.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,182 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Specializations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="quat.html" title="Template Class quaternion">
+<link rel="next" href="mem_typedef.html" title="Quaternion Member Typedefs">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="quat.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_typedef.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_spec">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.spec"></a><a class="link" href="spec.html" title="Quaternion Specializations">Quaternion Specializations</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">float</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
+	
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requeste
d_d</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="sp
ecial"><</span><span class="keyword">float</span><span class="special">>());</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+	
+   <span class="keyword">float</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>      <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">float</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_quaternion_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">double</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
+	
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">request
ed_d</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="
special"><</span><span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+	
+   <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>      <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="math_quaternion_long_double"></a><pre class="programlisting"><span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+   <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <a class="link" href="mem_typedef.html" title="Quaternion Member Typedefs">value_type</a><span class="special">;</span>
+	
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span>
 <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="sp
ecial">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>());</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+   <span class="keyword">explicit</span> <a class="link" href="mem_fun.html#math_toolkit.mem_fun.constructors">quaternion</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_recopier</span><span class="special">);</span>
+	
+   <span class="keyword">long</span> <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">real</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>      <a class="link" href="mem_fun.html#math_toolkit.mem_fun.real_and_unreal_parts">unreal</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_3</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="keyword">long</span> <span class="keyword">double</span>                  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_real_components">R_component_4</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_1</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+   <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>  <a class="link" href="mem_fun.html#math_toolkit.mem_fun.individual_complex_components">C_component_2</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>	
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.assignment_operators">operator = </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.addition_operators">operator += </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.subtraction_operators">operator -= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.multiplication_operators">operator *= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">></span>
+   <span class="identifier">quaternion</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>&</span>     <a class="link" href="mem_fun.html#math_toolkit.mem_fun.division_operators">operator /= </a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">X</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="special">}</span> <span class="comment">// namespace math</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quat.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="mem_typedef.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,145 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Statistical Distributions Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">
+<link rel="prev" href="../dist.html" title="Chapter 2. Statistical Distributions and Functions">
+<link rel="next" href="stat_tut/overview.html" title="Overview of Distributions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../dist.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="stat_tut/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.stat_tut"></a><a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">Statistical Distributions Tutorial</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section">Overview of Distributions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/overview/headers.html">Headers and
+        Namespaces</a></span></dt>
+<dt><span class="section"><a href="stat_tut/overview/objects.html">Distributions
+        are Objects</a></span></dt>
+<dt><span class="section"><a href="stat_tut/overview/generic.html">Generic operations
+        common to all distributions are non-member functions</a></span></dt>
+<dt><span class="section"><a href="stat_tut/overview/complements.html">Complements
+        are supported too - and when to use them</a></span></dt>
+<dt><span class="section"><a href="stat_tut/overview/parameters.html">Parameters
+        can be calculated</a></span></dt>
+<dt><span class="section">Summary</span></dt>
+</dl></dd>
+<dt><span class="section">Worked Examples</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/dist_construct_eg.html">Distribution
+        Construction Examples</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/st_eg.html">Student's t Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/st_eg/tut_mean_intervals.html">Calculating
+          confidence intervals on the mean with the Students-t distribution</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/st_eg/tut_mean_test.html">Testing
+          a sample mean for difference from a "true" mean</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/st_eg/tut_mean_size.html">Estimating
+          how large a sample size would have to become in order to give a significant
+          Students-t test result with a single sample test</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/st_eg/two_sample_students_t.html">Comparing
+          the means of two samples with the Students-t test</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/st_eg/paired_st.html">Comparing
+          two paired samples with the Student's t distribution</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/cs_eg.html">Chi Squared Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/cs_eg/chi_sq_intervals.html">Confidence
+          Intervals on the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/cs_eg/chi_sq_test.html">Chi-Square
+          Test for the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/cs_eg/chi_sq_size.html">Estimating
+          the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a></span></dt>
+</dl></dd>
+<dt><span class="section">F Distribution Examples</span></dt>
+<dt><span class="section"><a href="stat_tut/weg/binom_eg.html">Binomial Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/binom_eg/binomial_coinflip_example.html">Binomial
+          Coin-Flipping Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/binom_eg/binomial_quiz_example.html">Binomial
+          Quiz Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/binom_eg/binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/binom_eg/binom_size_eg.html">Estimating
+          Sample Sizes for a Binomial Distribution.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/geometric_eg.html">Geometric Distribution
+        Examples</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/neg_binom_eg.html">Negative Binomial
+        Distribution Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/neg_binom_eg/neg_binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for the Negative Binomial
+          Distribution</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html">Estimating
+          Sample Sizes for the Negative Binomial.</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/neg_binom_eg/negative_binomial_example1.html">Negative
+          Binomial Sales Quota Example.</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/neg_binom_eg/negative_binomial_example2.html">Negative
+          Binomial Table Printing Example.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/normal_example.html">Normal Distribution
+        Examples</a></span></dt>
+<dd><dl><dt><span class="section"><a href="stat_tut/weg/normal_example/normal_misc.html">Some
+          Miscellaneous Examples of the Normal (Gaussian) Distribution</a></span></dt></dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/inverse_chi_squared_eg.html">Inverse
+        Chi-Squared Distribution Bayes Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/nccs_eg.html">Non Central Chi
+        Squared Example</a></span></dt>
+<dd><dl><dt><span class="section"><a href="stat_tut/weg/nccs_eg/nccs_power_eg.html">Tables
+          of the power function of the chi<sup>2</sup> test.</a></span></dt></dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/error_eg.html">Error Handling
+        Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/find_eg.html">Find Location and
+        Scale Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="stat_tut/weg/find_eg/find_location_eg.html">Find
+          Location (Mean) Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/find_eg/find_scale_eg.html">Find
+          Scale (Standard Deviation) Example</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/find_eg/find_mean_and_sd_eg.html">Find
+          mean and standard deviation example</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="stat_tut/weg/nag_library.html">Comparison with
+        C, R, FORTRAN-style Free Functions</a></span></dt>
+<dt><span class="section"><a href="stat_tut/weg/c_sharp.html">Using the Distributions
+        from Within C#</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="stat_tut/variates.html">Random Variates and Distribution
+      Parameters</a></span></dt>
+<dt><span class="section"><a href="stat_tut/dist_params.html">Discrete Probability
+      Distributions</a></span></dt>
+</dl></div>
+<p>
+      This library is centred around statistical distributions, this tutorial will
+      give you an overview of what they are, how they can be used, and provides a
+      few worked examples of applying the library to statistical tests.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../dist.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="stat_tut/overview.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/dist_params.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/dist_params.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Discrete Probability Distributions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../stat_tut.html" title="Statistical Distributions Tutorial">
+<link rel="prev" href="variates.html" title="Random Variates and Distribution Parameters">
+<link rel="next" href="../dist_ref.html" title="Statistical Distributions Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="variates.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../dist_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_dist_params">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.stat_tut.dist_params"></a><a class="link" href="dist_params.html" title="Discrete Probability Distributions">Discrete Probability
+      Distributions</a>
+</h3></div></div></div>
+<p>
+        Note that the <a href="http://en.wikipedia.org/wiki/Discrete_probability_distribution" target="_top">discrete
+        distributions</a>, including the binomial, negative binomial, Poisson
+        & Bernoulli, are all mathematically defined as discrete functions: only
+        integral values of the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+        variate</a> are envisaged and the functions are only defined at these
+        integral values. However because the method of calculation often uses continuous
+        functions, it is convenient to treat them as if they were continuous functions,
+        and permit non-integral values of their parameters.
+      </p>
+<p>
+        To enforce a strict mathematical model, users may use floor or ceil functions
+        on the random variate,
+        prior to calling the distribution function, to enforce integral values.
+      </p>
+<p>
+        For similar reasons, in continuous distributions, parameters like degrees
+        of freedom that might appear to be integral, are treated as real values (and
+        are promoted from integer to floating-point if necessary). In this case however,
+        that there are a small number of situations where non-integral degrees of
+        freedom do have a genuine meaning.
+      </p>
+<p>
+        Generally speaking there is no loss of performance from allowing real-values
+        parameters: the underlying special functions contain optimizations for integer-valued
+        arguments when applicable.
+      </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          The quantile function of a discrete distribution will by default return
+          an integer result that has been <span class="emphasis"><em>rounded outwards</em></span>.
+          That is to say lower quantiles (where the probability is less than 0.5)
+          are rounded downward, and upper quantiles (where the probability is greater
+          than 0.5) are rounded upwards. This behaviour ensures that if an X% quantile
+          is requested, then <span class="emphasis"><em>at least</em></span> the requested coverage
+          will be present in the central region, and <span class="emphasis"><em>no more than</em></span>
+          the requested coverage will be present in the tails.
+        </p>
+<p>
+          This behaviour can be changed so that the quantile functions are rounded
+          differently, or even return a real-valued result using <a class="link" href="../pol_overview.html" title="Policies">Policies</a>.
+          It is strongly recommended that you read the tutorial <a class="link" href="../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+          Quantiles of Discrete Distributions</a> before using the quantile function
+          on a discrete distribution. The <a class="link" href="../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+          docs</a> describe how to change the rounding policy for these distributions.
+        </p>
+</td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="variates.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../dist_ref.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Overview of Distributions</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../stat_tut.html" title="Statistical Distributions Tutorial">
+<link rel="prev" href="../stat_tut.html" title="Statistical Distributions Tutorial">
+<link rel="next" href="overview/headers.html" title="Headers and Namespaces">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../stat_tut.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="overview/headers.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.stat_tut.overview"></a><a class="link" href="overview.html" title="Overview of Distributions">Overview of Distributions</a>
+</h3></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="overview/headers.html">Headers and
+        Namespaces</a></span></dt>
+<dt><span class="section"><a href="overview/objects.html">Distributions
+        are Objects</a></span></dt>
+<dt><span class="section"><a href="overview/generic.html">Generic operations
+        common to all distributions are non-member functions</a></span></dt>
+<dt><span class="section"><a href="overview/complements.html">Complements
+        are supported too - and when to use them</a></span></dt>
+<dt><span class="section"><a href="overview/parameters.html">Parameters
+        can be calculated</a></span></dt>
+<dt><span class="section">Summary</span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../stat_tut.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="overview/headers.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/complements.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/complements.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,190 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Complements are supported too - and when to use them</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="generic.html" title="Generic operations common to all distributions are non-member functions">
+<link rel="next" href="parameters.html" title="Parameters can be calculated">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="generic.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="parameters.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_complements">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.complements"></a><a class="link" href="complements.html" title="Complements are supported too - and when to use them">Complements
+        are supported too - and when to use them</a>
+</h4></div></div></div>
+<p>
+          Often you don't want the value of the CDF, but its complement, which is
+          to say <code class="computeroutput"><span class="number">1</span><span class="special">-</span><span class="identifier">p</span></code> rather than <code class="computeroutput"><span class="identifier">p</span></code>.
+          It is tempting to calculate the CDF and subtract it from <code class="computeroutput"><span class="number">1</span></code>, but if <code class="computeroutput"><span class="identifier">p</span></code>
+          is very close to <code class="computeroutput"><span class="number">1</span></code> then cancellation
+          error will cause you to lose accuracy, perhaps totally.
+        </p>
+<p>
+          <a class="link" href="complements.html#why_complements">See below <span class="emphasis"><em>"Why and when
+          to use complements?"</em></span></a>
+        </p>
+<p>
+          In this library, whenever you want to receive a complement, just wrap all
+          the function arguments in a call to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>, for example:
+        </p>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"CDF at t = 1 is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">1.0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Complement of CDF at t = 1 is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">1.0</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          But wait, now that we have a complement, we have to be able to use it as
+          well. Any function that accepts a probability as an argument can also accept
+          a complement by wrapping all of its arguments in a call to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>,
+          for example:
+        </p>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="number">1e10</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">*=</span> <span class="number">10</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// Calculate the quantile for a 1 in i chance:</span>
+   <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">1</span><span class="special">/</span><span class="identifier">i</span><span class="special">));</span>
+   <span class="comment">// Print it out:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of students-t with 5 degrees of freedom\n"</span>
+           <span class="string">"for a 1 in "</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="string">" chance is "</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            <span class="bold"><strong>Critical values are just quantiles</strong></span>
+          </p>
+<p>
+            Some texts talk about quantiles, or percentiles or fractiles, others
+            about critical values, the basic rule is:
+          </p>
+<p>
+            <span class="emphasis"><em>Lower critical values</em></span> are the same as the quantile.
+          </p>
+<p>
+            <span class="emphasis"><em>Upper critical values</em></span> are the same as the quantile
+            from the complement of the probability.
+          </p>
+<p>
+            For example, suppose we have a Bernoulli process, giving rise to a binomial
+            distribution with success ratio 0.1 and 100 trials in total. The <span class="emphasis"><em>lower
+            critical value</em></span> for a probability of 0.05 is given by:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">100</span><span class="special">,</span> <span class="number">0.1</span><span class="special">),</span> <span class="number">0.05</span><span class="special">)</span></code>
+          </p>
+<p>
+            and the <span class="emphasis"><em>upper critical value</em></span> is given by:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">100</span><span class="special">,</span> <span class="number">0.1</span><span class="special">),</span> <span class="number">0.05</span><span class="special">))</span></code>
+          </p>
+<p>
+            which return 4.82 and 14.63 respectively.
+          </p>
+</td></tr>
+</table></div>
+<a name="why_complements"></a><div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            <span class="bold"><strong>Why bother with complements anyway?</strong></span>
+          </p>
+<p>
+            It's very tempting to dispense with complements, and simply subtract
+            the probability from 1 when required. However, consider what happens
+            when the probability is very close to 1: let's say the probability expressed
+            at float precision is <code class="computeroutput"><span class="number">0.999999940f</span></code>,
+            then <code class="computeroutput"><span class="number">1</span> <span class="special">-</span>
+            <span class="number">0.999999940f</span> <span class="special">=</span>
+            <span class="number">5.96046448e-008</span></code>, but the result
+            is actually accurate to just <span class="emphasis"><em>one single bit</em></span>: the
+            only bit that didn't cancel out!
+          </p>
+<p>
+            Or to look at this another way: consider that we want the risk of falsely
+            rejecting the null-hypothesis in the Student's t test to be 1 in 1 billion,
+            for a sample size of 10,000. This gives a probability of 1 - 10<sup>-9</sup>, which
+            is exactly 1 when calculated at float precision. In this case calculating
+            the quantile from the complement neatly solves the problem, so for example:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">students_t</span><span class="special">(</span><span class="number">10000</span><span class="special">),</span> <span class="number">1e-9</span><span class="special">))</span></code>
+          </p>
+<p>
+            returns the expected t-statistic <code class="computeroutput"><span class="number">6.00336</span></code>,
+            where as:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">students_t</span><span class="special">(</span><span class="number">10000</span><span class="special">),</span> <span class="number">1</span><span class="special">-</span><span class="number">1e-9f</span><span class="special">)</span></code>
+          </p>
+<p>
+            raises an overflow error, since it is the same as:
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">students_t</span><span class="special">(</span><span class="number">10000</span><span class="special">),</span> <span class="number">1</span><span class="special">)</span></code>
+          </p>
+<p>
+            Which has no finite result.
+          </p>
+<p>
+            With all distributions, even for more reasonable probability (unless
+            the value of p can be represented exactly in the floating-point type)
+            the loss of accuracy quickly becomes significant if you simply calculate
+            probability from 1 - p (because it will be mostly garbage digits for
+            p ~ 1).
+          </p>
+<p>
+            So always avoid, for example, using a probability near to unity like
+            0.99999
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_distribution</span><span class="special">,</span>
+            <span class="number">0.99999</span><span class="special">)</span></code>
+          </p>
+<p>
+            and instead use
+          </p>
+<p>
+            <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">my_distribution</span><span class="special">,</span>
+            <span class="number">0.00001</span><span class="special">))</span></code>
+          </p>
+<p>
+            since 1 - 0.99999 is not exactly equal to 0.00001 when using floating-point
+            arithmetic.
+          </p>
+<p>
+            This assumes that the 0.00001 value is either a constant, or can be computed
+            by some manner other than subtracting 0.99999 from 1.
+          </p>
+</td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="generic.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="parameters.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/generic.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/generic.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,244 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Generic operations common to all distributions are non-member functions</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="objects.html" title="Distributions are Objects">
+<link rel="next" href="complements.html" title="Complements are supported too - and when to use them">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="objects.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="complements.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_generic">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.generic"></a><a class="link" href="generic.html" title="Generic operations common to all distributions are non-member functions">Generic operations
+        common to all distributions are non-member functions</a>
+</h4></div></div></div>
+<p>
+          Want to calculate the PDF (Probability Density Function) of a distribution?
+          No problem, just use:
+        </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span>  <span class="comment">// Returns PDF (density) at point x of distribution my_dist.</span>
+</pre>
+<p>
+          Or how about the CDF (Cumulative Distribution Function):
+        </p>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span>  <span class="comment">// Returns CDF (integral from -infinity to point x)</span>
+                  <span class="comment">// of distribution my_dist.</span>
+</pre>
+<p>
+          And quantiles are just the same:
+        </p>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>  <span class="comment">// Returns the value of the random variable x</span>
+                       <span class="comment">// such that cdf(my_dist, x) == p.</span>
+</pre>
+<p>
+          If you're wondering why these aren't member functions, it's to make the
+          library more easily extensible: if you want to add additional generic operations
+          - let's say the <span class="emphasis"><em>n'th moment</em></span> - then all you have to
+          do is add the appropriate non-member functions, overloaded for each implemented
+          distribution type.
+        </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            <span class="bold"><strong>Random numbers that approximate Quantiles of Distributions</strong></span>
+          </p>
+<p>
+            If you want random numbers that are distributed in a specific way, for
+            example in a uniform, normal or triangular, see Boost.Random.
+          </p>
+<p>
+            Whilst in principal there's nothing to prevent you from using the quantile
+            function to convert a uniformly distributed random number to another
+            distribution, in practice there are much more efficient algorithms available
+            that are specific to random number generation.
+          </p>
+</td></tr>
+</table></div>
+<p>
+          For example, the binomial distribution has two parameters: n (the number
+          of trials) and p (the probability of success on any one trial).
+        </p>
+<p>
+          The <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>
+          constructor therefore has two parameters:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span>
+          <span class="identifier">p</span><span class="special">);</span></code>
+        </p>
+<p>
+          For this distribution the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+          variate</a> is k: the number of successes observed. The probability
+          density/mass function (pdf) is therefore written as <span class="emphasis"><em>f(k; n, p)</em></span>.
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            <span class="bold"><strong>Random Variates and Distribution Parameters</strong></span>
+          </p>
+<p>
+            The concept of a <a href="http://en.wikipedia.org/wiki/Random_variable" target="_top">random
+            variable</a> is closely linked to the term <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+            variate</a>: a random variate is a particular value (outcome) of
+            a random variable. and <a href="http://en.wikipedia.org/wiki/Parameter" target="_top">distribution
+            parameters</a> are conventionally distinguished (for example in Wikipedia
+            and Wolfram MathWorld) by placing a semi-colon or vertical bar) <span class="emphasis"><em>after</em></span>
+            the <a href="http://en.wikipedia.org/wiki/Random_variable" target="_top">random
+            variable</a> (whose value you 'choose'), to separate the variate
+            from the parameter(s) that defines the shape of the distribution.<br>
+            For example, the binomial distribution probability distribution function
+            (PDF) is written as <span class="emphasis"><em>f(k| n, p)</em></span> = Pr(K = k|n, p)
+            = probability of observing k successes out of n trials. K is the random variable,
+            k is the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+            variate</a>, the parameters are n (trials) and p (probability).
+          </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            By convention, <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+            variate</a> are lower case, usually k is integral, x if real, and
+            random variable
+            are upper case, K if integral, X if real. But this implementation treats
+            all as floating point values <code class="computeroutput"><span class="identifier">RealType</span></code>,
+            so if you really want an integral result, you must round: see note on
+            Discrete Probability Distributions below for details.
+          </p></td></tr>
+</table></div>
+<p>
+          As noted above the non-member function <code class="computeroutput"><span class="identifier">pdf</span></code>
+          has one parameter for the distribution object, and a second for the random
+          variate. So taking our binomial distribution example, we would write:
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">);</span></code>
+        </p>
+<p>
+          The ranges of <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+          variate</a> values that are permitted and are supported can be tested
+          by using two functions <code class="computeroutput"><span class="identifier">range</span></code>
+          and <code class="computeroutput"><span class="identifier">support</span></code>.
+        </p>
+<p>
+          The distribution (effectively the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+          variate</a>) is said to be 'supported' over a range that is <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">"the smallest
+          closed set whose complement has probability zero"</a>. MathWorld
+          uses the word 'defined' for this range. Non-mathematicians might say it
+          means the 'interesting' smallest range of random variate x that has the
+          cdf going from zero to unity. Outside are uninteresting zones where the
+          pdf is zero, and the cdf zero or unity.
+        </p>
+<p>
+          For most distributions, with probability distribution functions one might
+          describe as 'well-behaved', we have decided that it is most useful for
+          the supported range to <span class="bold"><strong>exclude</strong></span> random
+          variate values like exact zero <span class="bold"><strong>if the end point is
+          discontinuous</strong></span>. For example, the Weibull (scale 1, shape 1) distribution
+          smoothly heads for unity as the random variate x declines towards zero.
+          But at x = zero, the value of the pdf is suddenly exactly zero, by definition.
+          If you are plotting the PDF, or otherwise calculating, zero is not the
+          most useful value for the lower limit of supported, as we discovered. So
+          for this, and similar distributions, we have decided it is most numerically
+          useful to use the closest value to zero, min_value, for the limit of the
+          supported range. (The <code class="computeroutput"><span class="identifier">range</span></code>
+          remains from zero, so you will still get <code class="computeroutput"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">weibull</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span>
+          <span class="special">==</span> <span class="number">0</span></code>).
+          (Exponential and gamma distributions have similarly discontinuous functions).
+        </p>
+<p>
+          Mathematically, the functions may make sense with an (+ or -) infinite
+          value, but except for a few special cases (in the Normal and Cauchy distributions)
+          this implementation limits random variates to finite values from the <code class="computeroutput"><span class="identifier">max</span></code> to <code class="computeroutput"><span class="identifier">min</span></code>
+          for the <code class="computeroutput"><span class="identifier">RealType</span></code>. (See
+          <a class="link" href="../../implementation0.html#math_toolkit.implementation0.handling_of_floating_point_infin">Handling
+          of Floating-Point Infinity</a> for rationale).
+        </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            <span class="bold"><strong>Discrete Probability Distributions</strong></span>
+          </p>
+<p>
+            Note that the <a href="http://en.wikipedia.org/wiki/Discrete_probability_distribution" target="_top">discrete
+            distributions</a>, including the binomial, negative binomial, Poisson
+            & Bernoulli, are all mathematically defined as discrete functions:
+            that is to say the functions <code class="computeroutput"><span class="identifier">cdf</span></code>
+            and <code class="computeroutput"><span class="identifier">pdf</span></code> are only defined
+            for integral values of the random variate.
+          </p>
+<p>
+            However, because the method of calculation often uses continuous functions
+            it is convenient to treat them as if they were continuous functions,
+            and permit non-integral values of their parameters.
+          </p>
+<p>
+            Users wanting to enforce a strict mathematical model may use <code class="computeroutput"><span class="identifier">floor</span></code> or <code class="computeroutput"><span class="identifier">ceil</span></code>
+            functions on the random variate prior to calling the distribution function.
+          </p>
+<p>
+            The quantile functions for these distributions are hard to specify in
+            a manner that will satisfy everyone all of the time. The default behaviour
+            is to return an integer result, that has been rounded <span class="emphasis"><em>outwards</em></span>:
+            that is to say, lower quantiles - where the probablity is less than 0.5
+            are rounded down, while upper quantiles - where the probability is greater
+            than 0.5 - are rounded up. This behaviour ensures that if an X% quantile
+            is requested, then <span class="emphasis"><em>at least</em></span> the requested coverage
+            will be present in the central region, and <span class="emphasis"><em>no more than</em></span>
+            the requested coverage will be present in the tails.
+          </p>
+<p>
+            This behaviour can be changed so that the quantile functions are rounded
+            differently, or return a real-valued result using <a class="link" href="../../pol_overview.html" title="Policies">Policies</a>.
+            It is strongly recommended that you read the tutorial <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Quantiles of Discrete Distributions</a> before using the quantile
+            function on a discrete distribtion. The <a class="link" href="../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">reference
+            docs</a> describe how to change the rounding policy for these distributions.
+          </p>
+<p>
+            For similar reasons continuous distributions with parameters like "degrees
+            of freedom" that might appear to be integral, are treated as real
+            values (and are promoted from integer to floating-point if necessary).
+            In this case however, there are a small number of situations where non-integral
+            degrees of freedom do have a genuine meaning.
+          </p>
+</td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="objects.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="complements.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/headers.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/headers.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Headers and Namespaces</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="../overview.html" title="Overview of Distributions">
+<link rel="next" href="objects.html" title="Distributions are Objects">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="objects.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_headers">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.headers"></a><a class="link" href="headers.html" title="Headers and Namespaces">Headers and
+        Namespaces</a>
+</h4></div></div></div>
+<p>
+          All the code in this library is inside namespace boost::math.
+        </p>
+<p>
+          In order to use a distribution <span class="emphasis"><em>my_distribution</em></span> you
+          will need to include either the header <boost/math/my_distribution.hpp>
+          or the "include all the distributions" header: <boost/math/distributions.hpp>.
+        </p>
+<p>
+          For example, to use the Students-t distribution include either <boost/math/students_t.hpp>
+          or <boost/math/distributions.hpp>
+        </p>
+<p>
+          You also need to bring distribution names into scope, perhaps with a <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
+          <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span></code>
+          declaration,
+        </p>
+<p>
+          or specific <code class="computeroutput"><span class="keyword">using</span></code> declarations
+          like <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span></code> (<span class="bold"><strong>recommended</strong></span>).
+        </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Some math function names are also used in namespace std so including
+            <random> could cause ambiguity!
+          </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../overview.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="objects.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/objects.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/objects.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Distributions are Objects</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="headers.html" title="Headers and Namespaces">
+<link rel="next" href="generic.html" title="Generic operations common to all distributions are non-member functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="headers.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="generic.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_objects">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.objects"></a><a class="link" href="objects.html" title="Distributions are Objects">Distributions
+        are Objects</a>
+</h4></div></div></div>
+<p>
+          Each kind of distribution in this library is a class type - an object.
+        </p>
+<p>
+          <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policies</a> provide fine-grained control of
+          the behaviour of these classes, allowing the user to customise behaviour
+          such as how errors are handled, or how the quantiles of discrete distribtions
+          behave.
+        </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            If you are familiar with statistics libraries using functions, and 'Distributions
+            as Objects' seem alien, see <a class="link" href="../weg/nag_library.html" title="Comparison with C, R, FORTRAN-style Free Functions">the
+            comparison to other statistics libraries.</a>
+          </p></td></tr>
+</table></div>
+<p>
+          Making distributions class types does two things:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              It encapsulates the kind of distribution in the C++ type system; so,
+              for example, Students-t distributions are always a different C++ type
+              from Chi-Squared distributions.
+            </li>
+<li class="listitem">
+              The distribution objects store any parameters associated with the distribution:
+              for example, the Students-t distribution has a <span class="emphasis"><em>degrees of
+              freedom</em></span> parameter that controls the shape of the distribution.
+              This <span class="emphasis"><em>degrees of freedom</em></span> parameter has to be provided
+              to the Students-t object when it is constructed.
+            </li>
+</ul></div>
+<p>
+          Although the distribution classes in this library are templates, there
+          are typedefs on type <span class="emphasis"><em>double</em></span> that mostly take the usual
+          name of the distribution (except where there is a clash with a function
+          of the same name: beta and gamma, in which case using the default template
+          arguments - <code class="computeroutput"><span class="identifier">RealType</span> <span class="special">=</span>
+          <span class="keyword">double</span></code> - is nearly as convenient).
+          Probably 95% of uses are covered by these typedefs:
+        </p>
+<pre class="programlisting"><span class="comment">// using namespace boost::math; // Avoid potential ambiguity with names in std <random></span>
+<span class="comment">// Safer to declare specific functions with using statement(s):</span>
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta_distribution</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span>
+
+<span class="comment">// Construct a students_t distribution with 4 degrees of freedom:</span>
+<span class="identifier">students_t</span> <span class="identifier">d1</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
+
+<span class="comment">// Construct a double-precision beta distribution</span>
+<span class="comment">// with parameters a = 10, b = 20</span>
+<span class="identifier">beta_distribution</span><span class="special"><></span> <span class="identifier">d2</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">20</span><span class="special">);</span> <span class="comment">// Note: _distribution<> suffix !</span>
+</pre>
+<p>
+          If you need to use the distributions with a type other than <code class="computeroutput"><span class="keyword">double</span></code>, then you can instantiate the template
+          directly: the names of the templates are the same as the <code class="computeroutput"><span class="keyword">double</span></code> typedef but with <code class="computeroutput"><span class="identifier">_distribution</span></code>
+          appended, for example: <a class="link" href="../../dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students
+          t Distribution</a> or <a class="link" href="../../dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a>:
+        </p>
+<pre class="programlisting"><span class="comment">// Construct a students_t distribution, of float type,</span>
+<span class="comment">// with 4 degrees of freedom:</span>
+<span class="identifier">students_t_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span> <span class="identifier">d3</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
+
+<span class="comment">// Construct a binomial distribution, of long double type,</span>
+<span class="comment">// with probability of success 0.3</span>
+<span class="comment">// and 20 trials in total:</span>
+<span class="identifier">binomial_distribution</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="identifier">d4</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">0.3</span><span class="special">);</span>
+</pre>
+<p>
+          The parameters passed to the distributions can be accessed via getter member
+          functions:
+        </p>
+<pre class="programlisting"><span class="identifier">d1</span><span class="special">.</span><span class="identifier">degrees_of_freedom</span><span class="special">();</span>  <span class="comment">// returns 4.0</span>
+</pre>
+<p>
+          This is all well and good, but not very useful so far. What we often want
+          is to be able to calculate the <span class="emphasis"><em>cumulative distribution functions</em></span>
+          and <span class="emphasis"><em>quantiles</em></span> etc for these distributions.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="headers.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="generic.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/parameters.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/parameters.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Parameters can be calculated</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="complements.html" title="Complements are supported too - and when to use them">
+<link rel="next" href="summary.html" title="Summary">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="complements.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="summary.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_parameters">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.parameters"></a><a class="link" href="parameters.html" title="Parameters can be calculated">Parameters
+        can be calculated</a>
+</h4></div></div></div>
+<p>
+          Sometimes it's the parameters that define the distribution that you need
+          to find. Suppose, for example, you have conducted a Students-t test for
+          equal means and the result is borderline. Maybe your two samples differ
+          from each other, or maybe they don't; based on the result of the test you
+          can't be sure. A legitimate question to ask then is "How many more
+          measurements would I have to take before I would get an X% probability
+          that the difference is real?" Parameter finders can answer questions
+          like this, and are necessarily different for each distribution. They are
+          implemented as static member functions of the distributions, for example:
+        </p>
+<pre class="programlisting"><span class="identifier">students_t</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+   <span class="number">1.3</span><span class="special">,</span>        <span class="comment">// difference from true mean to detect</span>
+   <span class="number">0.05</span><span class="special">,</span>       <span class="comment">// maximum risk of falsely rejecting the null-hypothesis.</span>
+   <span class="number">0.1</span><span class="special">,</span>        <span class="comment">// maximum risk of falsely failing to reject the null-hypothesis.</span>
+   <span class="number">0.13</span><span class="special">);</span>      <span class="comment">// sample standard deviation</span>
+</pre>
+<p>
+          Returns the number of degrees of freedom required to obtain a 95% probability
+          that the observed differences in means is not down to chance alone. In
+          the case that a borderline Students-t test result was previously obtained,
+          this can be used to estimate how large the sample size would have to become
+          before the observed difference was considered significant. It assumes,
+          of course, that the sample mean and standard deviation are invariant with
+          sample size.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complements.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="summary.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/summary.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/overview/summary.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Summary</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Overview of Distributions">
+<link rel="prev" href="parameters.html" title="Parameters can be calculated">
+<link rel="next" href="../weg.html" title="Worked Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="parameters.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../weg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_overview_summary">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.overview.summary"></a><a class="link" href="summary.html" title="Summary">Summary</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              Distributions are objects, which are constructed from whatever parameters
+              the distribution may have.
+            </li>
+<li class="listitem">
+              Member functions allow you to retrieve the parameters of a distribution.
+            </li>
+<li class="listitem">
+              Generic non-member functions provide access to the properties that
+              are common to all the distributions (PDF, CDF, quantile etc).
+            </li>
+<li class="listitem">
+              Complements of probabilities are calculated by wrapping the function's
+              arguments in a call to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>.
+            </li>
+<li class="listitem">
+              Functions that accept a probability can accept a complement of the
+              probability as well, by wrapping the function's arguments in a call
+              to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>.
+            </li>
+<li class="listitem">
+              Static member functions allow the parameters of a distribution to be
+              found from other information.
+            </li>
+</ul></div>
+<p>
+          Now that you have the basics, the next section looks at some worked examples.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="parameters.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../weg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/variates.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/variates.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Random Variates and Distribution Parameters</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../stat_tut.html" title="Statistical Distributions Tutorial">
+<link rel="prev" href="weg/c_sharp.html" title="Using the Distributions from Within C#">
+<link rel="next" href="dist_params.html" title="Discrete Probability Distributions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="weg/c_sharp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dist_params.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_variates">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.stat_tut.variates"></a><a class="link" href="variates.html" title="Random Variates and Distribution Parameters">Random Variates and Distribution
+      Parameters</a>
+</h3></div></div></div>
+<p>
+        Random variates
+        and distribution parameters
+        are conventionally distinguished (for example in Wikipedia and Wolfram MathWorld
+        by placing a semi-colon after the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+        variate</a> (whose value you 'choose'), to separate the variate from
+        the parameter(s) that defines the shape of the distribution.
+      </p>
+<p>
+        For example, the binomial distribution has two parameters: n (the number
+        of trials) and p (the probability of success on one trial). It also has the
+        random variate
+        <span class="emphasis"><em>k</em></span>: the number of successes observed. This means the
+        probability density/mass function (pdf) is written as <span class="emphasis"><em>f(k; n, p)</em></span>.
+      </p>
+<p>
+        Translating this into code the <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>
+        constructor therefore has two parameters:
+      </p>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+        While the function <code class="computeroutput"><span class="identifier">pdf</span></code> has
+        one argument specifying the distribution type (which includes its parameters,
+        if any), and a second argument for the <a href="http://en.wikipedia.org/wiki/Random_variate" target="_top">random
+        variate</a>. So taking our binomial distribution example, we would write:
+      </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">binomial_distribution</span><span class="special"><</span><span class="identifier">RealType</span><span class="special">>(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">);</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="weg/c_sharp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="dist_params.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,119 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Worked Examples</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../stat_tut.html" title="Statistical Distributions Tutorial">
+<link rel="prev" href="overview/summary.html" title="Summary">
+<link rel="next" href="weg/dist_construct_eg.html" title="Distribution Construction Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="overview/summary.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="weg/dist_construct_eg.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.stat_tut.weg"></a><a class="link" href="weg.html" title="Worked Examples">Worked Examples</a>
+</h3></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="weg/dist_construct_eg.html">Distribution
+        Construction Examples</a></span></dt>
+<dt><span class="section"><a href="weg/st_eg.html">Student's t Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="weg/st_eg/tut_mean_intervals.html">Calculating
+          confidence intervals on the mean with the Students-t distribution</a></span></dt>
+<dt><span class="section"><a href="weg/st_eg/tut_mean_test.html">Testing
+          a sample mean for difference from a "true" mean</a></span></dt>
+<dt><span class="section"><a href="weg/st_eg/tut_mean_size.html">Estimating
+          how large a sample size would have to become in order to give a significant
+          Students-t test result with a single sample test</a></span></dt>
+<dt><span class="section"><a href="weg/st_eg/two_sample_students_t.html">Comparing
+          the means of two samples with the Students-t test</a></span></dt>
+<dt><span class="section"><a href="weg/st_eg/paired_st.html">Comparing
+          two paired samples with the Student's t distribution</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="weg/cs_eg.html">Chi Squared Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="weg/cs_eg/chi_sq_intervals.html">Confidence
+          Intervals on the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="weg/cs_eg/chi_sq_test.html">Chi-Square
+          Test for the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="weg/cs_eg/chi_sq_size.html">Estimating
+          the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a></span></dt>
+</dl></dd>
+<dt><span class="section">F Distribution Examples</span></dt>
+<dt><span class="section"><a href="weg/binom_eg.html">Binomial Distribution
+        Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="weg/binom_eg/binomial_coinflip_example.html">Binomial
+          Coin-Flipping Example</a></span></dt>
+<dt><span class="section"><a href="weg/binom_eg/binomial_quiz_example.html">Binomial
+          Quiz Example</a></span></dt>
+<dt><span class="section"><a href="weg/binom_eg/binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="weg/binom_eg/binom_size_eg.html">Estimating
+          Sample Sizes for a Binomial Distribution.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="weg/geometric_eg.html">Geometric Distribution
+        Examples</a></span></dt>
+<dt><span class="section"><a href="weg/neg_binom_eg.html">Negative Binomial
+        Distribution Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="weg/neg_binom_eg/neg_binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for the Negative Binomial
+          Distribution</a></span></dt>
+<dt><span class="section"><a href="weg/neg_binom_eg/neg_binom_size_eg.html">Estimating
+          Sample Sizes for the Negative Binomial.</a></span></dt>
+<dt><span class="section"><a href="weg/neg_binom_eg/negative_binomial_example1.html">Negative
+          Binomial Sales Quota Example.</a></span></dt>
+<dt><span class="section"><a href="weg/neg_binom_eg/negative_binomial_example2.html">Negative
+          Binomial Table Printing Example.</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="weg/normal_example.html">Normal Distribution
+        Examples</a></span></dt>
+<dd><dl><dt><span class="section"><a href="weg/normal_example/normal_misc.html">Some
+          Miscellaneous Examples of the Normal (Gaussian) Distribution</a></span></dt></dl></dd>
+<dt><span class="section"><a href="weg/inverse_chi_squared_eg.html">Inverse
+        Chi-Squared Distribution Bayes Example</a></span></dt>
+<dt><span class="section"><a href="weg/nccs_eg.html">Non Central Chi
+        Squared Example</a></span></dt>
+<dd><dl><dt><span class="section"><a href="weg/nccs_eg/nccs_power_eg.html">Tables
+          of the power function of the chi<sup>2</sup> test.</a></span></dt></dl></dd>
+<dt><span class="section"><a href="weg/error_eg.html">Error Handling
+        Example</a></span></dt>
+<dt><span class="section"><a href="weg/find_eg.html">Find Location and
+        Scale Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="weg/find_eg/find_location_eg.html">Find
+          Location (Mean) Example</a></span></dt>
+<dt><span class="section"><a href="weg/find_eg/find_scale_eg.html">Find
+          Scale (Standard Deviation) Example</a></span></dt>
+<dt><span class="section"><a href="weg/find_eg/find_mean_and_sd_eg.html">Find
+          mean and standard deviation example</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="weg/nag_library.html">Comparison with
+        C, R, FORTRAN-style Free Functions</a></span></dt>
+<dt><span class="section"><a href="weg/c_sharp.html">Using the Distributions
+        from Within C#</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="overview/summary.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="weg/dist_construct_eg.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binomial Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="f_eg.html" title="F Distribution Examples">
+<link rel="next" href="binom_eg/binomial_coinflip_example.html" title="Binomial Coin-Flipping Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="f_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg/binomial_coinflip_example.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_binom_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.binom_eg"></a><a class="link" href="binom_eg.html" title="Binomial Distribution Examples">Binomial Distribution
+        Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="binom_eg/binomial_coinflip_example.html">Binomial
+          Coin-Flipping Example</a></span></dt>
+<dt><span class="section"><a href="binom_eg/binomial_quiz_example.html">Binomial
+          Quiz Example</a></span></dt>
+<dt><span class="section"><a href="binom_eg/binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a></span></dt>
+<dt><span class="section"><a href="binom_eg/binom_size_eg.html">Estimating
+          Sample Sizes for a Binomial Distribution.</a></span></dt>
+</dl></div>
+<p>
+          See also the reference documentation for the <a class="link" href="../../dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
+          Distribution</a>.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="f_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg/binomial_coinflip_example.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_conf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_conf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,231 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../binom_eg.html" title="Binomial Distribution Examples">
+<link rel="prev" href="binomial_quiz_example.html" title="Binomial Quiz Example">
+<link rel="next" href="binom_size_eg.html" title="Estimating Sample Sizes for a Binomial Distribution.">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_quiz_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_size_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_binom_eg_binom_conf">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.binom_eg.binom_conf"></a><a class="link" href="binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">Calculating
+          Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a>
+</h5></div></div></div>
+<p>
+            Imagine you have a process that follows a binomial distribution: for
+            each trial conducted, an event either occurs or does it does not, referred
+            to as "successes" and "failures". If, by experiment,
+            you want to measure the frequency with which successes occur, the best
+            estimate is given simply by <span class="emphasis"><em>k</em></span> / <span class="emphasis"><em>N</em></span>,
+            for <span class="emphasis"><em>k</em></span> successes out of <span class="emphasis"><em>N</em></span> trials.
+            However our confidence in that estimate will be shaped by how many trials
+            were conducted, and how many successes were observed. The static member
+            functions <code class="computeroutput"><span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_lower_bound_on_p</span></code>
+            and <code class="computeroutput"><span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_upper_bound_on_p</span></code>
+            allow you to calculate the confidence intervals for your estimate of
+            the occurrence frequency.
+          </p>
+<p>
+            The sample program binomial_confidence_limits.cpp
+            illustrates their use. It begins by defining a procedure that will print
+            a table of confidence limits for various degrees of certainty:
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">void</span> <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">trials</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">//</span>
+   <span class="comment">// trials = Total number of trials.</span>
+   <span class="comment">// successes = Total number of observed successes.</span>
+   <span class="comment">//</span>
+   <span class="comment">// Calculate confidence limits for an observed</span>
+   <span class="comment">// frequency of occurrence that follows a binomial</span>
+   <span class="comment">// distribution.</span>
+   <span class="comment">//</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+   <span class="comment">// Print out general info:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span>
+      <span class="string">"___________________________________________\n"</span>
+      <span class="string">"2-Sided Confidence Limits For Success Ratio\n"</span>
+      <span class="string">"___________________________________________\n\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">7</span><span class="special">);</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">trials</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of successes"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Sample frequency of occurrence"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="keyword">double</span><span class="special">(</span><span class="identifier">successes</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">trials</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            The procedure now defines a table of significance levels: these are the
+            probabilities that the true occurrence frequency lies outside the calculated
+            interval:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Some pretty printing of the table header follows:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n\n"</span>
+        <span class="string">"_______________________________________________________________________\n"</span>
+        <span class="string">"Confidence        Lower CP       Upper CP       Lower JP       Upper JP\n"</span>
+        <span class="string">" Value (%)        Limit          Limit          Limit          Limit\n"</span>
+        <span class="string">"_______________________________________________________________________\n"</span><span class="special">;</span>
+</pre>
+<p>
+            And now for the important part - the intervals themselves - for each
+            value of <span class="emphasis"><em>alpha</em></span>, we call <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+            and <code class="computeroutput"><span class="identifier">find_lower_upper_on_p</span></code>
+            to obtain lower and upper bounds respectively. Note that since we are
+            calculating a two-sided interval, we must divide the value of alpha in
+            two.
+          </p>
+<p>
+            Please note that calculating two separate <span class="emphasis"><em>single sided bounds</em></span>,
+            each with risk level α  is not the same thing as calculating a two sided
+            interval. Had we calculate two single-sided intervals each with a risk
+            that the true value is outside the interval of α, then:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                The risk that it is less than the lower bound is α.
+              </li></ul></div>
+<p>
+            and
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                The risk that it is greater than the upper bound is also α.
+              </li></ul></div>
+<p>
+            So the risk it is outside <span class="bold"><strong>upper or lower bound</strong></span>,
+            is <span class="bold"><strong>twice</strong></span> alpha, and the probability
+            that it is inside the bounds is therefore not nearly as high as one might
+            have thought. This is why α/2 must be used in the calculations below.
+          </p>
+<p>
+            In contrast, had we been calculating a single-sided interval, for example:
+            <span class="emphasis"><em>"Calculate a lower bound so that we are P% sure that the
+            true occurrence frequency is greater than some value"</em></span>
+            then we would <span class="bold"><strong>not</strong></span> have divided by two.
+          </p>
+<p>
+            Finally note that <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>
+            provides a choice of two methods for the calculation, we print out the
+            results from both methods in this example:
+          </p>
+<pre class="programlisting">   <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="comment">// Confidence value:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+      <span class="comment">// Calculate Clopper Pearson bounds:</span>
+      <span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+                     <span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">);</span>
+      <span class="keyword">double</span> <span class="identifier">u</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+                     <span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">);</span>
+      <span class="comment">// Print Clopper Pearson Limits:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">l</span><span class="special">;</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">u</span><span class="special">;</span>
+      <span class="comment">// Calculate Jeffreys Prior Bounds:</span>
+      <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+            <span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">,</span>
+            <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">jeffreys_prior_interval</span><span class="special">);</span>
+      <span class="identifier">u</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+            <span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">,</span>
+            <span class="identifier">binomial_distribution</span><span class="special"><>::</span><span class="identifier">jeffreys_prior_interval</span><span class="special">);</span>
+      <span class="comment">// Print Jeffreys Prior Limits:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">l</span><span class="special">;</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">u</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            And that's all there is to it. Let's see some sample output for a 2 in
+            10 success ratio, first for 20 trials:
+          </p>
+<pre class="programlisting">___________________________________________
+2-Sided Confidence Limits For Success Ratio
+___________________________________________
+
+Number of Observations                  =  20
+Number of successes                     =  4
+Sample frequency of occurrence          =  0.2
+
+
+_______________________________________________________________________
+Confidence        Lower CP       Upper CP       Lower JP       Upper JP
+ Value (%)        Limit          Limit          Limit          Limit
+_______________________________________________________________________
+    50.000        0.12840        0.29588        0.14974        0.26916
+    75.000        0.09775        0.34633        0.11653        0.31861
+    90.000        0.07135        0.40103        0.08734        0.37274
+    95.000        0.05733        0.43661        0.07152        0.40823
+    99.000        0.03576        0.50661        0.04655        0.47859
+    99.900        0.01905        0.58632        0.02634        0.55960
+    99.990        0.01042        0.64997        0.01530        0.62495
+    99.999        0.00577        0.70216        0.00901        0.67897
+</pre>
+<p>
+            As you can see, even at the 95% confidence level the bounds are really
+            quite wide (this example is chosen to be easily compared to the one in
+            the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a> here).
+            Note also that the Clopper-Pearson calculation method (CP above) produces
+            quite noticeably more pessimistic estimates than the Jeffreys Prior method
+            (JP above).
+          </p>
+<p>
+            Compare that with the program output for 2000 trials:
+          </p>
+<pre class="programlisting">___________________________________________
+2-Sided Confidence Limits For Success Ratio
+___________________________________________
+
+Number of Observations                  =  2000
+Number of successes                     =  400
+Sample frequency of occurrence          =  0.2000000
+
+
+_______________________________________________________________________
+Confidence        Lower CP       Upper CP       Lower JP       Upper JP
+ Value (%)        Limit          Limit          Limit          Limit
+_______________________________________________________________________
+    50.000        0.19382        0.20638        0.19406        0.20613
+    75.000        0.18965        0.21072        0.18990        0.21047
+    90.000        0.18537        0.21528        0.18561        0.21503
+    95.000        0.18267        0.21821        0.18291        0.21796
+    99.000        0.17745        0.22400        0.17769        0.22374
+    99.900        0.17150        0.23079        0.17173        0.23053
+    99.990        0.16658        0.23657        0.16681        0.23631
+    99.999        0.16233        0.24169        0.16256        0.24143
+</pre>
+<p>
+            Now even when the confidence level is very high, the limits are really
+            quite close to the experimentally calculated value of 0.2. Furthermore
+            the difference between the two calculation methods is now really quite
+            small.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_quiz_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_size_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_size_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binom_size_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,150 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Estimating Sample Sizes for a Binomial Distribution.</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../binom_eg.html" title="Binomial Distribution Examples">
+<link rel="prev" href="binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">
+<link rel="next" href="../geometric_eg.html" title="Geometric Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="binom_conf.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../geometric_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_binom_eg_binom_size_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.binom_eg.binom_size_eg"></a><a class="link" href="binom_size_eg.html" title="Estimating Sample Sizes for a Binomial Distribution.">Estimating
+          Sample Sizes for a Binomial Distribution.</a>
+</h5></div></div></div>
+<p>
+            Imagine you have a critical component that you know will fail in 1 in
+            N "uses" (for some suitable definition of "use").
+            You may want to schedule routine replacement of the component so that
+            its chance of failure between routine replacements is less than P%. If
+            the failures follow a binomial distribution (each time the component
+            is "used" it either fails or does not) then the static member
+            function <code class="computeroutput"><span class="identifier">binomial_distibution</span><span class="special"><>::</span><span class="identifier">find_maximum_number_of_trials</span></code>
+            can be used to estimate the maximum number of "uses" of that
+            component for some acceptable risk level <span class="emphasis"><em>alpha</em></span>.
+          </p>
+<p>
+            The example program binomial_sample_sizes.cpp
+            demonstrates its usage. It centres on a routine that prints out a table
+            of maximum sample sizes for various probability thresholds:
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_max_sample_size</span><span class="special">(</span>
+   <span class="keyword">double</span> <span class="identifier">p</span><span class="special">,</span>              <span class="comment">// success ratio.</span>
+   <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span>    <span class="comment">// Total number of observed successes permitted.</span>
+<span class="special">{</span>
+</pre>
+<p>
+            The routine then declares a table of probability thresholds: these are
+            the maximum acceptable probability that <span class="emphasis"><em>successes</em></span>
+            or fewer events will be observed. In our example, <span class="emphasis"><em>successes</em></span>
+            will be always zero, since we want no component failures, but in other
+            situations non-zero values may well make sense.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Much of the rest of the program is pretty-printing, the important part
+            is in the calculation of maximum number of permitted trials for each
+            value of alpha:
+          </p>
+<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// Confidence value:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+   <span class="comment">// calculate trials:</span>
+   <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">binomial</span><span class="special">::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+                  <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+   <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">floor</span><span class="special">(</span><span class="identifier">t</span><span class="special">);</span>
+   <span class="comment">// Print Trials:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            Note that since we're calculating the maximum number of trials permitted,
+            we'll err on the safe side and take the floor of the result. Had we been
+            calculating the <span class="emphasis"><em>minimum</em></span> number of trials required
+            to observe a certain number of <span class="emphasis"><em>successes</em></span> using
+            <code class="computeroutput"><span class="identifier">find_minimum_number_of_trials</span></code>
+            we would have taken the ceiling instead.
+          </p>
+<p>
+            We'll finish off by looking at some sample output, firstly for a 1 in
+            1000 chance of component failure with each use:
+          </p>
+<pre class="programlisting">________________________
+Maximum Number of Trials
+________________________
+
+Success ratio                           =  0.001
+Maximum Number of "successes" permitted =  0
+
+
+____________________________
+Confidence        Max Number
+ Value (%)        Of Trials
+____________________________
+    50.000            692
+    75.000            287
+    90.000            105
+    95.000             51
+    99.000             10
+    99.900              0
+    99.990              0
+    99.999              0
+</pre>
+<p>
+            So 51 "uses" of the component would yield a 95% chance that
+            no component failures would be observed.
+          </p>
+<p>
+            Compare that with a 1 in 1 million chance of component failure:
+          </p>
+<pre class="programlisting">________________________
+Maximum Number of Trials
+________________________
+
+Success ratio                           =  0.0000010
+Maximum Number of "successes" permitted =  0
+
+
+____________________________
+Confidence        Max Number
+ Value (%)        Of Trials
+____________________________
+    50.000         693146
+    75.000         287681
+    90.000         105360
+    95.000          51293
+    99.000          10050
+    99.900           1000
+    99.990            100
+    99.999             10
+</pre>
+<p>
+            In this case, even 1000 uses of the component would still yield a less
+            than 1 in 1000 chance of observing a component failure (i.e. a 99.9%
+            chance of no failure).
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binom_conf.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../geometric_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_coinflip_example.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,264 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binomial Coin-Flipping Example</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../binom_eg.html" title="Binomial Distribution Examples">
+<link rel="prev" href="../binom_eg.html" title="Binomial Distribution Examples">
+<link rel="next" href="binomial_quiz_example.html" title="Binomial Quiz Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../binom_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binomial_quiz_example.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_binom_eg_binomial_coinflip_example">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.binom_eg.binomial_coinflip_example"></a><a class="link" href="binomial_coinflip_example.html" title="Binomial Coin-Flipping Example">Binomial
+          Coin-Flipping Example</a>
+</h5></div></div></div>
+<p>
+            An example of a <a href="http://en.wikipedia.org/wiki/Bernoulli_process" target="_top">Bernoulli
+            process</a> is coin flipping. A variable in such a sequence may be
+            called a Bernoulli variable.
+          </p>
+<p>
+            This example shows using the Binomial distribution to predict the probability
+            of heads and tails when throwing a coin.
+          </p>
+<p>
+            The number of correct answers (say heads), X, is distributed as a binomial
+            random variable with binomial distribution parameters number of trials
+            (flips) n = 10 and probability (success_fraction) of getting a head p
+            = 0.5 (a 'fair' coin).
+          </p>
+<p>
+            (Our coin is assumed fair, but we could easily change the success_fraction
+            parameter p from 0.5 to some other value to simulate an unfair coin,
+            say 0.6 for one with chewing gum on the tail, so it is more likely to
+            fall tails down and heads up).
+          </p>
+<p>
+            First we need some includes and using statements to be able to use the
+            binomial distribution, some std input and output, and get started:
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Using Binomial distribution to predict how many heads and tails."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+  <span class="keyword">try</span>
+  <span class="special">{</span>
+</pre>
+<p>
+            See note <a class="link" href="binomial_coinflip_example.html#coinflip_eg_catch">with the catch block</a>
+            about why a try and catch block is always a good idea.
+          </p>
+<p>
+            First, construct a binomial distribution with parameters success_fraction
+            1/2, and how many flips.
+          </p>
+<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// = 50% = 1/2 for a 'fair' coin.</span>
+<span class="keyword">int</span> <span class="identifier">flips</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>
+<span class="identifier">binomial</span> <span class="identifier">flip</span><span class="special">(</span><span class="identifier">flips</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
+</pre>
+<p>
+            Then some examples of using Binomial moments (and echoing the parameters).
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"From "</span> <span class="special"><<</span> <span class="identifier">flips</span> <span class="special"><<</span> <span class="string">" one can expect to get on average "</span>
+  <span class="special"><<</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" heads (or tails)."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Mode is "</span> <span class="special"><<</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviation is "</span> <span class="special"><<</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span>
+  <span class="special"><<</span>  <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">))</span>  <span class="special"><<</span> <span class="string">" and "</span>
+  <span class="special"><<</span> <span class="identifier">floor</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" correct."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Skewness is "</span> <span class="special"><<</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Skewness of binomial distributions is only zero (symmetrical)</span>
+<span class="comment">// if success_fraction is exactly one half,</span>
+<span class="comment">// for example, when flipping 'fair' coins.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Skewness if success_fraction is "</span> <span class="special"><<</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Expect zero for a 'fair' coin.</span>
+</pre>
+<p>
+            Now we show a variety of predictions on the probability of heads:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"For "</span> <span class="special"><<</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" coin flips: "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting no heads is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting at least one head is "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            When we want to calculate the probability for a range or values we can
+            sum the PDF's:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 0 or 1 heads is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// sum of exactly == probabilities</span>
+</pre>
+<p>
+            Or we can use the cdf.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 0 or 1 (<= 1) heads is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">9</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Note that using
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            is less accurate than using the complement
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Since the subtraction may involve <a href="http://docs.sun.com/source/806-3568/ncg_goldberg.html" target="_top">cancellation
+            error</a>, where as <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span></code>
+            does not use such a subtraction internally, and so does not exhibit the
+            problem.
+          </p>
+<p>
+            To get the probability for a range of heads, we can either add the pdfs
+            for each number of heads
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
+  <span class="comment">//  P(X == 4) + P(X == 5) + P(X == 6)</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">5</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            But this is probably less efficient than using the cdf
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
+  <span class="comment">// P(X <= 6) - P(X <= 3) == P(X < 4)</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Certainly for a bigger range like, 3 to 7
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is "</span>
+  <span class="comment">// P(X <= 7) - P(X <= 2) == P(X < 3)</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">7</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Finally, print two tables of probability for the <span class="emphasis"><em>exactly</em></span>
+            and <span class="emphasis"><em>at least</em></span> a number of heads.
+          </p>
+<pre class="programlisting"><span class="comment">// Print a table of probability for the exactly a number of heads.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting exactly (==) heads"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special"><=</span> <span class="identifier">flips</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span>
+<span class="special">{</span> <span class="comment">// Say success means getting a head (or equally success means getting a tail).</span>
+  <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"     "</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+    <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">" or 1 in "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span>
+    <span class="special"><<</span> <span class="string">", or "</span> <span class="special"><<</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="string">"%"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// for i</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="comment">// Tabulate the probability of getting between zero heads and 0 upto 10 heads.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting upto (<=) heads"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special"><=</span> <span class="identifier">flips</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span>
+<span class="special">{</span> <span class="comment">// Say success means getting a head</span>
+  <span class="comment">// (equally success could mean getting a tail).</span>
+  <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span> <span class="comment">// P(X <= heads)</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"        "</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span>
+    <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">" or 1 in "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">", or "</span>
+    <span class="special"><<</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="string">"%"</span><span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// for i</span>
+</pre>
+<p>
+            The last (0 to 10 heads) must, of course, be 100% probability.
+          </p>
+<pre class="programlisting"><span class="special">}</span>
+<span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="comment">//</span>
+</pre>
+<p>
+            <a name="coinflip_eg_catch"></a>It is always essential to include try
+            & catch blocks because default policies are to throw exceptions on
+            arguments that are out of domain or cause errors like numeric-overflow.
+          </p>
+<p>
+            Lacking try & catch blocks, the program will abort, whereas the message
+            below from the thrown exception will give some helpful clues as to the
+            cause of the problem.
+          </p>
+<pre class="programlisting">  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span>
+    <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n   "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            See binomial_coinflip_example.cpp
+            for full source code, the program output looks like this:
+          </p>
+<pre class="programlisting">Using Binomial distribution to predict how many heads and tails.
+From 10 one can expect to get on average 5 heads (or tails).
+Mode is 5
+Standard deviation is 1.581
+So about 2/3 will lie within 1 standard deviation and get between 4 and 6 correct.
+Skewness is 0
+Skewness if success_fraction is 0.5 is 0
+
+For 10 coin flips:
+Probability of getting no heads is 0.0009766
+Probability of getting at least one head is 0.999
+Probability of getting 0 or 1 heads is 0.01074
+Probability of getting 0 or 1 (<= 1) heads is 0.01074
+Probability of getting 9 or 10 heads is 0.01074
+Probability of getting 9 or 10 heads is 0.01074
+Probability of getting 9 or 10 heads is 0.01074
+Probability of between 4 and 6 heads (4 or 5 or 6) is 0.6562
+Probability of between 4 and 6 heads (4 or 5 or 6) is 0.6563
+Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is 0.8906
+
+Probability of getting exactly (==) heads
+0      0.0009766  or 1 in 1024, or 0.09766%
+1      0.009766   or 1 in 102.4, or 0.9766%
+2      0.04395    or 1 in 22.76, or 4.395%
+3      0.1172     or 1 in 8.533, or 11.72%
+4      0.2051     or 1 in 4.876, or 20.51%
+5      0.2461     or 1 in 4.063, or 24.61%
+6      0.2051     or 1 in 4.876, or 20.51%
+7      0.1172     or 1 in 8.533, or 11.72%
+8      0.04395    or 1 in 22.76, or 4.395%
+9      0.009766   or 1 in 102.4, or 0.9766%
+10     0.0009766  or 1 in 1024, or 0.09766%
+
+Probability of getting upto (<=) heads
+0         0.0009766  or 1 in 1024, or 0.09766%
+1         0.01074    or 1 in 93.09, or 1.074%
+2         0.05469    or 1 in 18.29, or 5.469%
+3         0.1719     or 1 in 5.818, or 17.19%
+4         0.377      or 1 in 2.653, or 37.7%
+5         0.623      or 1 in 1.605, or 62.3%
+6         0.8281     or 1 in 1.208, or 82.81%
+7         0.9453     or 1 in 1.058, or 94.53%
+8         0.9893     or 1 in 1.011, or 98.93%
+9         0.999      or 1 in 1.001, or 99.9%
+10        1          or 1 in 1, or 100%
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../binom_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binomial_quiz_example.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,451 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binomial Quiz Example</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../binom_eg.html" title="Binomial Distribution Examples">
+<link rel="prev" href="binomial_coinflip_example.html" title="Binomial Coin-Flipping Example">
+<link rel="next" href="binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_coinflip_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_conf.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_binom_eg_binomial_quiz_example">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example"></a><a class="link" href="binomial_quiz_example.html" title="Binomial Quiz Example">Binomial
+          Quiz Example</a>
+</h5></div></div></div>
+<p>
+            A multiple choice test has four possible answers to each of 16 questions.
+            A student guesses the answer to each question, so the probability of
+            getting a correct answer on any given question is one in four, a quarter,
+            1/4, 25% or fraction 0.25. The conditions of the binomial experiment
+            are assumed to be met: n = 16 questions constitute the trials; each question
+            results in one of two possible outcomes (correct or incorrect); the probability
+            of being correct is 0.25 and is constant if no knowledge about the subject
+            is assumed; the questions are answered independently if the student's
+            answer to a question in no way influences his/her answer to another question.
+          </p>
+<p>
+            First, we need to be able to use the binomial distribution constructor
+            (and some std input/output, of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">flush</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">right</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">fixed</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">exception</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span>
+</pre>
+<p>
+            The number of correct answers, X, is distributed as a binomial random
+            variable with binomial distribution parameters: questions n and success
+            fraction probability p. So we construct a binomial distribution:
+          </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">questions</span> <span class="special">=</span> <span class="number">16</span><span class="special">;</span> <span class="comment">// All the questions in the quiz.</span>
+<span class="keyword">int</span> <span class="identifier">answers</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span> <span class="comment">// Possible answers to each question.</span>
+<span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">answers</span><span class="special">;</span> <span class="comment">// If a random guess, p = 1/4 = 0.25.</span>
+<span class="identifier">binomial</span> <span class="identifier">quiz</span><span class="special">(</span><span class="identifier">questions</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+</pre>
+<p>
+            and display the distribution parameters we used thus:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"In a quiz with "</span> <span class="special"><<</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" questions and with a probability of guessing right of "</span>
+  <span class="special"><<</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">*</span> <span class="number">100</span> <span class="special"><<</span> <span class="string">" %"</span>
+  <span class="special"><<</span> <span class="string">" or 1 in "</span> <span class="special"><<</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="number">1.</span> <span class="special">/</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">())</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Show a few probabilities of just guessing:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting none right is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.010023</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting exactly one right is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting exactly two right is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">pass_score</span> <span class="special">=</span> <span class="number">11</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting exactly "</span> <span class="special"><<</span> <span class="identifier">pass_score</span> <span class="special"><<</span> <span class="string">" answers right by chance is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting all "</span> <span class="special"><<</span> <span class="identifier">questions</span> <span class="special"><<</span> <span class="string">" answers right by chance is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">questions</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting none right is 0.0100226
+Probability of getting exactly one right is 0.0534538
+Probability of getting exactly two right is 0.133635
+Probability of getting exactly 11 right is 0.000247132
+Probability of getting exactly all 16 answers right by chance is 2.32831e-010
+</pre>
+<p>
+            These don't give any encouragement to guessers!
+          </p>
+<p>
+            We can tabulate the 'getting exactly right' ( == ) probabilities thus:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span> <span class="string">"Guessed Probability"</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special"><=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"      "</span> <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Guessed Probability
+ 0      0.0100226
+ 1      0.0534538
+ 2      0.133635
+ 3      0.207876
+ 4      0.225199
+ 5      0.180159
+ 6      0.110097
+ 7      0.0524273
+ 8      0.0196602
+ 9      0.00582526
+10      0.00135923
+11      0.000247132
+12      3.43239e-005
+13      3.5204e-006
+14      2.51457e-007
+15      1.11759e-008
+16      2.32831e-010
+</pre>
+<p>
+            Then we can add the probabilities of some 'exactly right' like this:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting none or one right is 0.0634764
+</pre>
+<p>
+            But if more than a couple of scores are involved, it is more convenient
+            (and may be more accurate) to use the Cumulative Distribution Function
+            (cdf) instead:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting none or one right is 0.0634764
+</pre>
+<p>
+            Since the cdf is inclusive, we can get the probability of getting up
+            to 10 right ( <= )
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting <= 10 right (to fail) is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting <= 10 right (to fail) is 0.999715
+</pre>
+<p>
+            To get the probability of getting 11 or more right (to pass), it is tempting
+            to use
+          </p>
+<pre class="programlisting"><span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span></pre>
+<p>
+            to get the probability of > 10
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting > 10 right (to pass) is "</span> <span class="special"><<</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting > 10 right (to pass) is 0.000285239
+</pre>
+<p>
+            But this should be resisted in favor of using the complement function.
+            <a class="link" href="../../overview/complements.html#why_complements">Why complements?</a>
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting > 10 right (to pass) is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting > 10 right (to pass) is 0.000285239
+</pre>
+<p>
+            And we can check that these two, <= 10 and > 10, add up to unity.
+          </p>
+<pre class="programlisting"><span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)))</span> <span class="special">==</span> <span class="number">1.</span><span class="special">);</span>
+</pre>
+<p>
+            If we want a < rather than a <= test, because the CDF is inclusive,
+            we must subtract one from the score.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting less than "</span> <span class="special"><<</span> <span class="identifier">pass_score</span>
+  <span class="special"><<</span> <span class="string">" (< "</span> <span class="special"><<</span> <span class="identifier">pass_score</span> <span class="special"><<</span> <span class="string">") answers right by guessing is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of getting less than 11 (< 11) answers right by guessing is 0.999715
+</pre>
+<p>
+            and similarly to get a >= rather than a > test we also need to
+            subtract one from the score (and can again check the sum is unity). This
+            is because if the cdf is <span class="emphasis"><em>inclusive</em></span>, then its complement
+            must be <span class="emphasis"><em>exclusive</em></span> otherwise there would be one possible
+            outcome counted twice!
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting at least "</span> <span class="special"><<</span> <span class="identifier">pass_score</span>
+  <span class="special"><<</span> <span class="string">"(>= "</span> <span class="special"><<</span> <span class="identifier">pass_score</span> <span class="special"><<</span> <span class="string">") answers right by guessing is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">-</span><span class="number">1</span><span class="special">))</span>
+  <span class="special"><<</span> <span class="string">", only 1 in "</span> <span class="special"><<</span> <span class="number">1</span><span class="special">/</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">-</span><span class="number">1</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">-</span><span class="number">1</span><span class="special">)))</span> <span class="special">==</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<pre class="programlisting">Probability of getting at least 11 (>= 11) answers right by guessing is 0.000285239, only 1 in 3505.83
+</pre>
+<p>
+            Finally we can tabulate some probabilities:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span> <span class="string">"At most (<=)"</span><span class="string">"\n"</span><span class="string">"Guessed OK   Probability"</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">score</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">score</span> <span class="special"><=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">score</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">score</span> <span class="special"><<</span> <span class="string">"           "</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+    <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">score</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">At most (<=)
+Guessed OK   Probability
+ 0           0.01002259576
+ 1           0.0634764398
+ 2           0.1971110499
+ 3           0.4049871101
+ 4           0.6301861752
+ 5           0.8103454274
+ 6           0.9204427481
+ 7           0.9728700437
+ 8           0.9925302796
+ 9           0.9983555346
+10           0.9997147608
+11           0.9999618928
+12           0.9999962167
+13           0.9999997371
+14           0.9999999886
+15           0.9999999998
+16           1
+</pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span> <span class="string">"At least (>)"</span><span class="string">"\n"</span><span class="string">"Guessed OK   Probability"</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">score</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">score</span> <span class="special"><=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">score</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">score</span> <span class="special"><<</span> <span class="string">"           "</span>  <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
+    <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">score</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<pre class="programlisting">At least (>)
+Guessed OK   Probability
+ 0           0.9899774042
+ 1           0.9365235602
+ 2           0.8028889501
+ 3           0.5950128899
+ 4           0.3698138248
+ 5           0.1896545726
+ 6           0.07955725188
+ 7           0.02712995629
+ 8           0.00746972044
+ 9           0.001644465374
+10           0.0002852391917
+11           3.810715862e-005
+12           3.783265129e-006
+13           2.628657967e-007
+14           1.140870154e-008
+15           2.328306437e-010
+16           0
+</pre>
+<p>
+            We now consider the probabilities of <span class="bold"><strong>ranges</strong></span>
+            of correct guesses.
+          </p>
+<p>
+            First, calculate the probability of getting a range of guesses right,
+            by adding the exact probabilities of each from low ... high.
+          </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">low</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Getting at least 3 right.</span>
+<span class="keyword">int</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> <span class="comment">// Getting as most 5 right.</span>
+<span class="keyword">double</span> <span class="identifier">sum</span> <span class="special">=</span> <span class="number">0.</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">low</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><=</span> <span class="identifier">high</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="identifier">sum</span> <span class="special">+=</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">i</span><span class="special">);</span>
+<span class="special">}</span>
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting between "</span>
+  <span class="special"><<</span> <span class="identifier">low</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">high</span> <span class="special"><<</span> <span class="string">" answers right by guessing is "</span>
+  <span class="special"><<</span> <span class="identifier">sum</span>  <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.61323</span>
+</pre>
+<pre class="programlisting">Probability of getting between 3 and 5 answers right by guessing is 0.6132
+</pre>
+<p>
+            Or, usually better, we can use the difference of cdfs instead:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting between "</span> <span class="special"><<</span> <span class="identifier">low</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">high</span> <span class="special"><<</span> <span class="string">" answers right by guessing is "</span>
+  <span class="special"><<</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.61323</span>
+</pre>
+<pre class="programlisting">Probability of getting between 3 and 5 answers right by guessing is 0.6132
+</pre>
+<p>
+            And we can also try a few more combinations of high and low choices:
+          </p>
+<pre class="programlisting"><span class="identifier">low</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">6</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting between "</span> <span class="special"><<</span> <span class="identifier">low</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">high</span> <span class="special"><<</span> <span class="string">" answers right by guessing is "</span>
+  <span class="special"><<</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 and 6 P= 0.91042</span>
+<span class="identifier">low</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">8</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting between "</span> <span class="special"><<</span> <span class="identifier">low</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">high</span> <span class="special"><<</span> <span class="string">" answers right by guessing is "</span>
+  <span class="special"><<</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 <= x 8 P = 0.9825</span>
+<span class="identifier">low</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting between "</span> <span class="special"><<</span> <span class="identifier">low</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">high</span> <span class="special"><<</span> <span class="string">" answers right by guessing is "</span>
+  <span class="special"><<</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 4 <= x 4 P = 0.22520</span>
+</pre>
+<pre class="programlisting">Probability of getting between 1 and 6 answers right by guessing is 0.9104
+Probability of getting between 1 and 8 answers right by guessing is 0.9825
+Probability of getting between 4 and 4 answers right by guessing is 0.2252
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_mome"></a></span><a class="link" href="binomial_quiz_example.html#math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_mome">Using
+            Binomial distribution moments</a>
+          </h5>
+<p>
+            Using moments of the distribution, we can say more about the spread of
+            results from guessing.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"By guessing, on average, one can expect to get "</span> <span class="special"><<</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" correct answers."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviation is "</span> <span class="special"><<</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span>
+  <span class="special"><<</span>  <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">))</span>  <span class="special"><<</span> <span class="string">" and "</span>
+  <span class="special"><<</span> <span class="identifier">floor</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" correct."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Mode (the most frequent) is "</span> <span class="special"><<</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Skewness is "</span> <span class="special"><<</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">By guessing, on average, one can expect to get 4 correct answers.
+Standard deviation is 1.732
+So about 2/3 will lie within 1 standard deviation and get between 3 and 5 correct.
+Mode (the most frequent) is 4
+Skewness is 0.2887
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.h1"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles"></a></span><a class="link" href="binomial_quiz_example.html#math_toolkit.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles">Quantiles</a>
+          </h5>
+<p>
+            The quantiles (percentiles or percentage points) for a few probability
+            levels:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quartiles "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quartiles</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"1 standard deviation "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.33</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.67</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 sd</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Deciles "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.1</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.1</span><span class="special">))<<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Deciles</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"5 to 95% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.05</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.05</span><span class="special">))<<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 5 to 95%</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2.5 to 97.5% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.025</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span>  <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.025</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 2.5 to 97.5%</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2 to 98% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.02</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.02</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">//  2 to 98%</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If guessing then percentiles 1 to 99% will get "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.01</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">" to "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.01</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" right."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Notice that these output integral values because the default policy is
+            <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>.
+          </p>
+<pre class="programlisting">Quartiles 2 to 5
+1 standard deviation 2 to 5
+Deciles 1 to 6
+5 to 95% 0 to 7
+2.5 to 97.5% 0 to 8
+2 to 98% 0 to 8
+</pre>
+<p>
+            Quantiles values are controlled by the <a class="link" href="../../../pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">discrete
+            quantile policy</a> chosen. The default is <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>,
+            so the lower quantile is rounded down, and the upper quantile is rounded
+            up.
+          </p>
+<p>
+            But we might believe that the real values tell us a little more - see
+            <a class="link" href="../../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+            Discrete Quantile Policy</a>.
+          </p>
+<p>
+            We could control the policy for <span class="bold"><strong>all</strong></span>
+            distributions by
+          </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
+
+<span class="identifier">at</span> <span class="identifier">the</span> <span class="identifier">head</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">program</span> <span class="identifier">would</span> <span class="identifier">make</span> <span class="keyword">this</span> <span class="identifier">policy</span> <span class="identifier">apply</span>
+</pre>
+<p>
+            to this <span class="bold"><strong>one, and only</strong></span>, translation unit.
+          </p>
+<p>
+            Or we can now create a (typedef for) policy that has discrete quantiles
+            real (here avoiding any 'using namespaces ...' statements):
+          </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">discrete_quantile</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">real</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_outwards</span><span class="special">;</span> <span class="comment">// Default.</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><</span><span class="identifier">discrete_quantile</span><span class="special"><</span><span class="identifier">real</span><span class="special">></span> <span class="special">></span> <span class="identifier">real_quantile_policy</span><span class="special">;</span>
+</pre>
+<p>
+            Add a custom binomial distribution called
+          </p>
+<pre class="programlisting"><span class="identifier">real_quantile_binomial</span></pre>
+<p>
+            that uses
+          </p>
+<pre class="programlisting"><span class="identifier">real_quantile_policy</span></pre>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_quantile_policy</span><span class="special">></span> <span class="identifier">real_quantile_binomial</span><span class="special">;</span>
+</pre>
+<p>
+            Construct an object of this custom distribution:
+          </p>
+<pre class="programlisting"><span class="identifier">real_quantile_binomial</span> <span class="identifier">quiz_real</span><span class="special">(</span><span class="identifier">questions</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+</pre>
+<p>
+            And use this to show some quantiles - that now have real rather than
+            integer values.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quartiles "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.25</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quartiles 2 to 4.6212</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"1 standard deviation "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.33</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.67</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 sd 2.6654 4.194</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Deciles "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.1</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.1</span><span class="special">))<<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Deciles 1.3487 5.7583</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"5 to 95% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.05</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.05</span><span class="special">))<<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 5 to 95% 0.83739 6.4559</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2.5 to 97.5% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.025</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span>  <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.025</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 2.5 to 97.5% 0.42806 7.0688</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2 to 98% "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.02</span><span class="special">)</span>  <span class="special"><<</span> <span class="string">" to "</span>
+  <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.02</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">//  2 to 98% 0.31311 7.7880</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If guessing, then percentiles 1 to 99% will get "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.01</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">" to "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.01</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" right."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Real Quantiles
+Quartiles 2 to 4.621
+1 standard deviation 2.665 to 4.194
+Deciles 1.349 to 5.758
+5 to 95% 0.8374 to 6.456
+2.5 to 97.5% 0.4281 to 7.069
+2 to 98% 0.3131 to 7.252
+If guessing then percentiles 1 to 99% will get 0 to 7.788 right.
+</pre>
+<p>
+            See binomial_quiz_example.cpp
+            for full source code and output.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binomial_coinflip_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_conf.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/c_sharp.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/c_sharp.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using the Distributions from Within C#</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="nag_library.html" title="Comparison with C, R, FORTRAN-style Free Functions">
+<link rel="next" href="../variates.html" title="Random Variates and Distribution Parameters">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nag_library.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../variates.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_c_sharp">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.c_sharp"></a><a class="link" href="c_sharp.html" title="Using the Distributions from Within C#">Using the Distributions
+        from Within C#</a>
+</h4></div></div></div>
+<p>
+          The distributions in this library can be used from the C# programming language
+          when they are built using Microsofts Common Language Runtime option.
+        </p>
+<p>
+          An example of this kind of usage is given in the distribution_explorer
+          example: see <code class="literal">boost-root/libs/math/dot_net_example</code> for
+          the source code: the application consists of a C++ dll that contains the
+          actual distributions, and a C# GUI that allows you to explore their properties.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nag_library.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="../variates.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chi Squared Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="st_eg/paired_st.html" title="Comparing two paired samples with the Student's t distribution">
+<link rel="next" href="cs_eg/chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="st_eg/paired_st.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="cs_eg/chi_sq_intervals.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_cs_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.cs_eg"></a><a class="link" href="cs_eg.html" title="Chi Squared Distribution Examples">Chi Squared Distribution
+        Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="cs_eg/chi_sq_intervals.html">Confidence
+          Intervals on the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="cs_eg/chi_sq_test.html">Chi-Square
+          Test for the Standard Deviation</a></span></dt>
+<dt><span class="section"><a href="cs_eg/chi_sq_size.html">Estimating
+          the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="st_eg/paired_st.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="cs_eg/chi_sq_intervals.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,226 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Confidence Intervals on the Standard Deviation</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../cs_eg.html" title="Chi Squared Distribution Examples">
+<link rel="prev" href="../cs_eg.html" title="Chi Squared Distribution Examples">
+<link rel="next" href="chi_sq_test.html" title="Chi-Square Test for the Standard Deviation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../cs_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_test.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_cs_eg_chi_sq_intervals">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.cs_eg.chi_sq_intervals"></a><a class="link" href="chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation">Confidence
+          Intervals on the Standard Deviation</a>
+</h5></div></div></div>
+<p>
+            Once you have calculated the standard deviation for your data, a legitimate
+            question to ask is "How reliable is the calculated standard deviation?".
+            For this situation the Chi Squared distribution can be used to calculate
+            confidence intervals for the standard deviation.
+          </p>
+<p>
+            The full example code & sample output is in chi_square_std_deviation_test.cpp.
+          </p>
+<p>
+            We'll begin by defining the procedure that will calculate and print out
+            the confidence intervals:
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">confidence_limits_on_std_deviation</span><span class="special">(</span>
+     <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span>    <span class="comment">// Sample Standard Deviation</span>
+     <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">)</span>   <span class="comment">// Sample size</span>
+<span class="special">{</span>
+</pre>
+<p>
+            We'll begin by printing out some general information:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span>
+   <span class="string">"________________________________________________\n"</span>
+   <span class="string">"2-Sided Confidence Limits For Standard Deviation\n"</span>
+   <span class="string">"________________________________________________\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">7</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">N</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">Sd</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            and then define a table of significance levels for which we'll calculate
+            intervals:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            The distribution we'll need to calculate the confidence intervals is
+            a Chi Squared distribution, with N-1 degrees of freedom:
+          </p>
+<pre class="programlisting"><span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+            For each value of alpha, the formula for the confidence interval is given
+            by:
+          </p>
+<p>
+            <span class="inlinemediaobject"><img src="../../../../../equations/chi_squ_tut1.png"></span>
+          </p>
+<p>
+            Where <span class="inlinemediaobject"><img src="../../../../../equations/chi_squ_tut2.png"></span> is the upper critical value, and <span class="inlinemediaobject"><img src="../../../../../equations/chi_squ_tut3.png"></span> is
+            the lower critical value of the Chi Squared distribution.
+          </p>
+<p>
+            In code we begin by printing out a table header:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n\n"</span>
+        <span class="string">"_____________________________________________\n"</span>
+        <span class="string">"Confidence          Lower          Upper\n"</span>
+        <span class="string">" Value (%)          Limit          Limit\n"</span>
+        <span class="string">"_____________________________________________\n"</span><span class="special">;</span>
+</pre>
+<p>
+            and then loop over the values of alpha and calculate the intervals for
+            each: remember that the lower critical value is the same as the quantile,
+            and the upper critical value is the same as the quantile from the complement
+            of the probability:
+          </p>
+<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// Confidence value:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+   <span class="comment">// Calculate limits:</span>
+   <span class="keyword">double</span> <span class="identifier">lower_limit</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">((</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">2</span><span class="special">)));</span>
+   <span class="keyword">double</span> <span class="identifier">upper_limit</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">((</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
+   <span class="comment">// Print Limits:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">lower_limit</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">upper_limit</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            To see some example output we'll use the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3581.htm" target="_top">gear
+            data</a> from the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>. The data represents measurements
+            of gear diameter from a manufacturing process.
+          </p>
+<pre class="programlisting">________________________________________________
+2-Sided Confidence Limits For Standard Deviation
+________________________________________________
+
+Number of Observations                  =  100
+Standard Deviation                      =  0.006278908
+
+
+_____________________________________________
+Confidence          Lower          Upper
+ Value (%)          Limit          Limit
+_____________________________________________
+    50.000        0.00601        0.00662
+    75.000        0.00582        0.00685
+    90.000        0.00563        0.00712
+    95.000        0.00551        0.00729
+    99.000        0.00530        0.00766
+    99.900        0.00507        0.00812
+    99.990        0.00489        0.00855
+    99.999        0.00474        0.00895
+</pre>
+<p>
+            So at the 95% confidence level we conclude that the standard deviation
+            is between 0.00551 and 0.00729.
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.cs_eg.chi_sq_intervals.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_functi"></a></span><a class="link" href="chi_sq_intervals.html#math_toolkit.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_functi">Confidence
+            intervals as a function of the number of observations</a>
+          </h5>
+<p>
+            Similarly, we can also list the confidence intervals for the standard
+            deviation for the common confidence levels 95%, for increasing numbers
+            of observations.
+          </p>
+<p>
+            The standard deviation used to compute these values is unity, so the
+            limits listed are <span class="bold"><strong>multipliers</strong></span> for any
+            particular standard deviation. For example, given a standard deviation
+            of 0.0062789 as in the example above; for 100 observations the multiplier
+            is 0.8780 giving the lower confidence limit of 0.8780 * 0.006728 = 0.00551.
+          </p>
+<pre class="programlisting">____________________________________________________
+Confidence level (two-sided)            =  0.0500000
+Standard Deviation                      =  1.0000000
+________________________________________
+Observations        Lower          Upper
+                    Limit          Limit
+________________________________________
+         2         0.4461        31.9102
+         3         0.5207         6.2847
+         4         0.5665         3.7285
+         5         0.5991         2.8736
+         6         0.6242         2.4526
+         7         0.6444         2.2021
+         8         0.6612         2.0353
+         9         0.6755         1.9158
+        10         0.6878         1.8256
+        15         0.7321         1.5771
+        20         0.7605         1.4606
+        30         0.7964         1.3443
+        40         0.8192         1.2840
+        50         0.8353         1.2461
+        60         0.8476         1.2197
+       100         0.8780         1.1617
+       120         0.8875         1.1454
+      1000         0.9580         1.0459
+     10000         0.9863         1.0141
+     50000         0.9938         1.0062
+    100000         0.9956         1.0044
+   1000000         0.9986         1.0014
+</pre>
+<p>
+            With just 2 observations the limits are from <span class="bold"><strong>0.445</strong></span>
+            up to to <span class="bold"><strong>31.9</strong></span>, so the standard deviation
+            might be about <span class="bold"><strong>half</strong></span> the observed value
+            up to <span class="bold"><strong>30 times</strong></span> the observed value!
+          </p>
+<p>
+            Estimating a standard deviation with just a handful of values leaves
+            a very great uncertainty, especially the upper limit. Note especially
+            how far the upper limit is skewed from the most likely standard deviation.
+          </p>
+<p>
+            Even for 10 observations, normally considered a reasonable number, the
+            range is still from 0.69 to 1.8, about a range of 0.7 to 2, and is still
+            highly skewed with an upper limit <span class="bold"><strong>twice</strong></span>
+            the median.
+          </p>
+<p>
+            When we have 1000 observations, the estimate of the standard deviation
+            is starting to look convincing, with a range from 0.95 to 1.05 - now
+            near symmetrical, but still about + or - 5%.
+          </p>
+<p>
+            Only when we have 10000 or more repeated observations can we start to
+            be reasonably confident (provided we are sure that other factors like
+            drift are not creeping in).
+          </p>
+<p>
+            For 10000 observations, the interval is 0.99 to 1.1 - finally a really
+            convincing + or -1% confidence.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../cs_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_test.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_size.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,172 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../cs_eg.html" title="Chi Squared Distribution Examples">
+<link rel="prev" href="chi_sq_test.html" title="Chi-Square Test for the Standard Deviation">
+<link rel="next" href="../f_eg.html" title="F Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="chi_sq_test.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../f_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_cs_eg_chi_sq_size">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.cs_eg.chi_sq_size"></a><a class="link" href="chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation">Estimating
+          the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a>
+</h5></div></div></div>
+<p>
+            Suppose we conduct a Chi Squared test for standard deviation and the
+            result is borderline, a legitimate question to ask is "How large
+            would the sample size have to be in order to produce a definitive result?"
+          </p>
+<p>
+            The class template <a class="link" href="../../../dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">chi_squared_distribution</a>
+            has a static method <code class="computeroutput"><span class="identifier">find_degrees_of_freedom</span></code>
+            that will calculate this value for some acceptable risk of type I failure
+            <span class="emphasis"><em>alpha</em></span>, type II failure <span class="emphasis"><em>beta</em></span>,
+            and difference from the standard deviation <span class="emphasis"><em>diff</em></span>.
+            Please note that the method used works on variance, and not standard
+            deviation as is usual for the Chi Squared Test.
+          </p>
+<p>
+            The code for this example is located in chi_square_std_dev_test.cpp.
+          </p>
+<p>
+            We begin by defining a procedure to print out the sample sizes required
+            for various risk levels:
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">chi_squared_sample_sized</span><span class="special">(</span>
+     <span class="keyword">double</span> <span class="identifier">diff</span><span class="special">,</span>      <span class="comment">// difference from variance to detect</span>
+     <span class="keyword">double</span> <span class="identifier">variance</span><span class="special">)</span>  <span class="comment">// true variance</span>
+<span class="special">{</span>
+</pre>
+<p>
+            The procedure begins by printing out the input data:
+          </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+<span class="comment">// Print out general info:</span>
+<span class="identifier">cout</span> <span class="special"><<</span>
+   <span class="string">"_____________________________________________________________\n"</span>
+   <span class="string">"Estimated sample sizes required for various confidence levels\n"</span>
+   <span class="string">"_____________________________________________________________\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"True Variance"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">variance</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Difference to detect"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">diff</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            And defines a table of significance levels for which we'll calculate
+            sample sizes:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            For each value of alpha we can calculate two sample sizes: one where
+            the sample variance is less than the true value by <span class="emphasis"><em>diff</em></span>
+            and one where it is greater than the true value by <span class="emphasis"><em>diff</em></span>.
+            Thanks to the asymmetric nature of the Chi Squared distribution these
+            two values will not be the same, the difference in their calculation
+            differs only in the sign of <span class="emphasis"><em>diff</em></span> that's passed to
+            <code class="computeroutput"><span class="identifier">find_degrees_of_freedom</span></code>.
+            Finally in this example we'll simply things, and let risk level <span class="emphasis"><em>beta</em></span>
+            be the same as <span class="emphasis"><em>alpha</em></span>:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n\n"</span>
+        <span class="string">"_______________________________________________________________\n"</span>
+        <span class="string">"Confidence       Estimated          Estimated\n"</span>
+        <span class="string">" Value (%)      Sample Size        Sample Size\n"</span>
+        <span class="string">"                (lower one         (upper one\n"</span>
+        <span class="string">"                 sided test)        sided test)\n"</span>
+        <span class="string">"_______________________________________________________________\n"</span><span class="special">;</span>
+<span class="comment">//</span>
+<span class="comment">// Now print out the data for the table rows.</span>
+<span class="comment">//</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// Confidence value:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+   <span class="comment">// calculate df for a lower single sided test:</span>
+   <span class="keyword">double</span> <span class="identifier">df</span> <span class="special">=</span> <span class="identifier">chi_squared</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+      <span class="special">-</span><span class="identifier">diff</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">variance</span><span class="special">);</span>
+   <span class="comment">// convert to sample size:</span>
+   <span class="keyword">double</span> <span class="identifier">size</span> <span class="special">=</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">df</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">;</span>
+   <span class="comment">// Print size:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">size</span><span class="special">;</span>
+   <span class="comment">// calculate df for an upper single sided test:</span>
+   <span class="identifier">df</span> <span class="special">=</span> <span class="identifier">chi_squared</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+      <span class="identifier">diff</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">variance</span><span class="special">);</span>
+   <span class="comment">// convert to sample size:</span>
+   <span class="identifier">size</span> <span class="special">=</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">df</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">;</span>
+   <span class="comment">// Print size:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">size</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            For some example output, consider the <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc23.htm" target="_top">silicon
+            wafer data</a> from the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>. In this scenario a supplier
+            of 100 ohm.cm silicon wafers claims that his fabrication process can
+            produce wafers with sufficient consistency so that the standard deviation
+            of resistivity for the lot does not exceed 10 ohm.cm. A sample of N =
+            10 wafers taken from the lot has a standard deviation of 13.97 ohm.cm,
+            and the question we ask ourselves is "How large would our sample
+            have to be to reliably detect this difference?".
+          </p>
+<p>
+            To use our procedure above, we have to convert the standard deviations
+            to variance (square them), after which the program output looks like
+            this:
+          </p>
+<pre class="programlisting">_____________________________________________________________
+Estimated sample sizes required for various confidence levels
+_____________________________________________________________
+
+True Variance                           =  100.00000
+Difference to detect                    =  95.16090
+
+
+_______________________________________________________________
+Confidence       Estimated          Estimated
+ Value (%)      Sample Size        Sample Size
+                (lower one         (upper one
+                 sided test)        sided test)
+_______________________________________________________________
+    50.000               2               2
+    75.000               2              10
+    90.000               4              32
+    95.000               5              51
+    99.000               7              99
+    99.900              11             174
+    99.990              15             251
+    99.999              20             330
+</pre>
+<p>
+            In this case we are interested in a upper single sided test. So for example,
+            if the maximum acceptable risk of falsely rejecting the null-hypothesis
+            is 0.05 (Type I error), and the maximum acceptable risk of failing to
+            reject the null-hypothesis is also 0.05 (Type II error), we estimate
+            that we would need a sample size of 51.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="chi_sq_test.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../f_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/chi_sq_test.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,287 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chi-Square Test for the Standard Deviation</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../cs_eg.html" title="Chi Squared Distribution Examples">
+<link rel="prev" href="chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation">
+<link rel="next" href="chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="chi_sq_intervals.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_size.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_cs_eg_chi_sq_test">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.cs_eg.chi_sq_test"></a><a class="link" href="chi_sq_test.html" title="Chi-Square Test for the Standard Deviation">Chi-Square
+          Test for the Standard Deviation</a>
+</h5></div></div></div>
+<p>
+            We use this test to determine whether the standard deviation of a sample
+            differs from a specified value. Typically this occurs in process change
+            situations where we wish to compare the standard deviation of a new process
+            to an established one.
+          </p>
+<p>
+            The code for this example is contained in chi_square_std_dev_test.cpp,
+            and we'll begin by defining the procedure that will print out the test
+            statistics:
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">chi_squared_test</span><span class="special">(</span>
+    <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span>     <span class="comment">// Sample std deviation</span>
+    <span class="keyword">double</span> <span class="identifier">D</span><span class="special">,</span>      <span class="comment">// True std deviation</span>
+    <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">,</span>    <span class="comment">// Sample size</span>
+    <span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">)</span>  <span class="comment">// Significance level</span>
+<span class="special">{</span>
+</pre>
+<p>
+            The procedure begins by printing a summary of the input data:
+          </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+<span class="comment">// Print header:</span>
+<span class="identifier">cout</span> <span class="special"><<</span>
+   <span class="string">"______________________________________________\n"</span>
+   <span class="string">"Chi Squared test for sample standard deviation\n"</span>
+   <span class="string">"______________________________________________\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">N</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Sample Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">Sd</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Expected True Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">D</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+            The test statistic (T) is simply the ratio of the sample and "true"
+            standard deviations squared, multiplied by the number of degrees of freedom
+            (the sample size less one):
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Test Statistic"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">t_stat</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            The distribution we need to use, is a Chi Squared distribution with N-1
+            degrees of freedom:
+          </p>
+<pre class="programlisting"><span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+            The various hypothesis that can be tested are summarised in the following
+            table:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                    <p>
+                      Hypothesis
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      Test
+                    </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                    <p>
+                      The null-hypothesis: there is no difference in standard deviation
+                      from the specified value
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if T < χ<sup>2</sup><sub>(1-alpha/2; N-1)</sub> or T > χ<sup>2</sup><sub>(alpha/2; N-1)</sub>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The alternative hypothesis: there is a difference in standard
+                      deviation from the specified value
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if χ<sup>2</sup><sub>(1-alpha/2; N-1)</sub> >= T >= χ<sup>2</sup><sub>(alpha/2; N-1)</sub>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The alternative hypothesis: the standard deviation is less
+                      than the specified value
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if χ<sup>2</sup><sub>(1-alpha; N-1)</sub> <= T
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The alternative hypothesis: the standard deviation is greater
+                      than the specified value
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if χ<sup>2</sup><sub>(alpha; N-1)</sub> >= T
+                    </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+            Where χ<sup>2</sup><sub>(alpha; N-1)</sub> is the upper critical value of the Chi Squared distribution,
+            and χ<sup>2</sup><sub>(1-alpha; N-1)</sub> is the lower critical value.
+          </p>
+<p>
+            Recall that the lower critical value is the same as the quantile, and
+            the upper critical value is the same as the quantile from the complement
+            of the probability, that gives us the following code to calculate the
+            critical values:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
+<span class="keyword">double</span> <span class="identifier">ucv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
+<span class="keyword">double</span> <span class="identifier">lcv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">lcv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Upper Critical Value at alpha: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">ucv</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Upper Critical Value at alpha/2: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">ucv2</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Lower Critical Value at alpha: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">lcv</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Lower Critical Value at alpha/2: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">lcv2</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+            Now that we have the critical values, we can compare these to our test
+            statistic, and print out the result of each hypothesis and test:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span>
+   <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">alpha</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Alternative Hypothesis              Conclusion\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard Deviation != "</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">D</span> <span class="special"><<</span> <span class="string">"            "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">((</span><span class="identifier">ucv2</span> <span class="special"><</span> <span class="identifier">t_stat</span><span class="special">)</span> <span class="special">||</span> <span class="special">(</span><span class="identifier">lcv2</span> <span class="special">></span> <span class="identifier">t_stat</span><span class="special">))</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard Deviation  < "</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">D</span> <span class="special"><<</span> <span class="string">"            "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">lcv</span> <span class="special">></span> <span class="identifier">t_stat</span><span class="special">)</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard Deviation  > "</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">D</span> <span class="special"><<</span> <span class="string">"            "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">ucv</span> <span class="special"><</span> <span class="identifier">t_stat</span><span class="special">)</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            To see some example output we'll use the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3581.htm" target="_top">gear
+            data</a> from the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>. The data represents measurements
+            of gear diameter from a manufacturing process. The program output is
+            deliberately designed to mirror the DATAPLOT output shown in the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda358.htm" target="_top">NIST
+            Handbook Example</a>.
+          </p>
+<pre class="programlisting">______________________________________________
+Chi Squared test for sample standard deviation
+______________________________________________
+
+Number of Observations                                 =  100
+Sample Standard Deviation                              =  0.00628
+Expected True Standard Deviation                       =  0.10000
+
+Test Statistic                                         =  0.39030
+CDF of test statistic:                                 =  1.438e-099
+Upper Critical Value at alpha:                         =  1.232e+002
+Upper Critical Value at alpha/2:                       =  1.284e+002
+Lower Critical Value at alpha:                         =  7.705e+001
+Lower Critical Value at alpha/2:                       =  7.336e+001
+
+Results for Alternative Hypothesis and alpha           =  0.0500
+
+Alternative Hypothesis              Conclusion
+Standard Deviation != 0.100            ACCEPTED
+Standard Deviation  < 0.100            ACCEPTED
+Standard Deviation  > 0.100            REJECTED
+</pre>
+<p>
+            In this case we are testing whether the sample standard deviation is
+            0.1, and the null-hypothesis is rejected, so we conclude that the standard
+            deviation <span class="emphasis"><em>is not</em></span> 0.1.
+          </p>
+<p>
+            For an alternative example, consider the <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc23.htm" target="_top">silicon
+            wafer data</a> again from the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>. In this scenario a supplier
+            of 100 ohm.cm silicon wafers claims that his fabrication process can
+            produce wafers with sufficient consistency so that the standard deviation
+            of resistivity for the lot does not exceed 10 ohm.cm. A sample of N =
+            10 wafers taken from the lot has a standard deviation of 13.97 ohm.cm,
+            and the question we ask ourselves is "Is the suppliers claim correct?".
+          </p>
+<p>
+            The program output now looks like this:
+          </p>
+<pre class="programlisting">______________________________________________
+Chi Squared test for sample standard deviation
+______________________________________________
+
+Number of Observations                                 =  10
+Sample Standard Deviation                              =  13.97000
+Expected True Standard Deviation                       =  10.00000
+
+Test Statistic                                         =  17.56448
+CDF of test statistic:                                 =  9.594e-001
+Upper Critical Value at alpha:                         =  1.692e+001
+Upper Critical Value at alpha/2:                       =  1.902e+001
+Lower Critical Value at alpha:                         =  3.325e+000
+Lower Critical Value at alpha/2:                       =  2.700e+000
+
+Results for Alternative Hypothesis and alpha           =  0.0500
+
+Alternative Hypothesis              Conclusion
+Standard Deviation != 10.000            REJECTED
+Standard Deviation  < 10.000            REJECTED
+Standard Deviation  > 10.000            ACCEPTED
+</pre>
+<p>
+            In this case, our null-hypothesis is that the standard deviation of the
+            sample is less than 10: this hypothesis is rejected in the analysis above,
+            and so we reject the manufacturers claim.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="chi_sq_intervals.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_size.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/dist_construct_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/dist_construct_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,323 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Distribution Construction Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="../weg.html" title="Worked Examples">
+<link rel="next" href="st_eg.html" title="Student's t Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../weg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="st_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_dist_construct_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.dist_construct_eg"></a><a class="link" href="dist_construct_eg.html" title="Distribution Construction Examples">Distribution
+        Construction Examples</a>
+</h4></div></div></div>
+<p>
+          The structure of distributions is rather different from some other statistical
+          libraries, for example, those written in less object-oriented language
+          like FORTRAN and C: these provide a few arguments to each free function.
+        </p>
+<p>
+          Boost.Math library provides each distribution as a template C++ class.
+          A distribution is constructed with a few arguments, and then member and
+          non-member functions are used to find values of the distribution, often
+          a function of a random variate.
+        </p>
+<p>
+          For this demonstration, first we need some includes to access the negative
+          binomial distribution (and the binomial, beta and gamma distributions too).
+        </p>
+<p>
+          To demonstrate the use with a high precision User-defined floating-point
+          type <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code> we also
+          need an include from Boost.Multiprecision.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for negative_binomial_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span> <span class="comment">// default type is double.</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for binomial_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for beta_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for gamma_distribution.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for normal_distribution.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for cpp_dec_float_100</span>
+</pre>
+<p>
+          Several examples of constructing distributions follow:
+        </p>
+<p>
+          First, a negative binomial distribution with 8 successes and a success
+          fraction 0.25, 25% or 1 in 4, is constructed like this:
+        </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">mydist0</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+</pre>
+<p>
+          But this is inconveniently long, so we might be tempted to write
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+</pre>
+<p>
+          but this might risk ambiguity with names in <code class="computeroutput"><span class="identifier">std</span>
+          <span class="identifier">random</span></code> so <span class="bold"><strong>much</strong></span>
+          better is explicit <code class="computeroutput"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span></code>
+          statements, for example:
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span>
+</pre>
+<p>
+          and we can still reduce typing.
+        </p>
+<p>
+          Since the vast majority of applications use will be using <code class="computeroutput"><span class="keyword">double</span></code> precision, the template argument
+          to the distribution (<code class="computeroutput"><span class="identifier">RealType</span></code>)
+          defaults to type <code class="computeroutput"><span class="keyword">double</span></code>, so
+          we can also write:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special"><></span> <span class="identifier">mydist9</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span> <span class="comment">// Uses default `RealType = double`.</span>
+</pre>
+<p>
+          But the name <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span></code>
+          is still inconveniently long, so, for most distributions, a convenience
+          <code class="computeroutput"><span class="keyword">typedef</span></code> is provided, for example:
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// Reserved name of type double.</span>
+</pre>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            This convenience typedef is <span class="bold"><strong>not provided</strong></span>
+            if a clash would occur with the name of a function: currently only <code class="computeroutput"><span class="identifier">beta</span></code> and <code class="computeroutput"><span class="identifier">gamma</span></code>
+            fall into this category.
+          </p></td></tr>
+</table></div>
+<p>
+          So, after a using statement,
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span>
+</pre>
+<p>
+          we have a convenient typedef to <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code>:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+</pre>
+<p>
+          Some more examples using the convenience typedef:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist10</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Both arguments double.</span>
+</pre>
+<p>
+          And automatic conversion takes place, so you can use integers and floats:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist11</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Using provided typedef double, int and double arguments.</span>
+</pre>
+<p>
+          This is probably the most common usage.
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist12</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4F</span><span class="special">);</span> <span class="comment">// Double and float arguments.</span>
+<span class="identifier">negative_binomial</span> <span class="identifier">mydist13</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Both arguments integer.</span>
+</pre>
+<p>
+          Similarly for most other distributions like the binomial.
+        </p>
+<pre class="programlisting"><span class="identifier">binomial</span> <span class="identifier">mybinomial</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// is more concise than</span>
+<span class="identifier">binomial_distribution</span><span class="special"><></span> <span class="identifier">mybinomd1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+</pre>
+<p>
+          For cases when the typdef distribution name would clash with a math special
+          function (currently only beta and gamma) the typedef is deliberately not
+          provided, and the longer version of the name must be used. For example
+          do not use:
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta</span><span class="special">;</span>
+<span class="identifier">beta</span> <span class="identifier">mybetad0</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// Error beta is a math FUNCTION!</span>
+</pre>
+<p>
+          Which produces the error messages:
+        </p>
+<pre class="programlisting">error C2146: syntax error : missing ';' before identifier 'mybetad0'
+warning C4551: function call missing argument list
+error C3861: 'mybetad0': identifier not found
+</pre>
+<p>
+          Instead you should use:
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta_distribution</span><span class="special">;</span>
+<span class="identifier">beta_distribution</span><span class="special"><></span> <span class="identifier">mybetad1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+</pre>
+<p>
+          or for the gamma distribution:
+        </p>
+<pre class="programlisting"><span class="identifier">gamma_distribution</span><span class="special"><></span> <span class="identifier">mygammad1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+</pre>
+<p>
+          We can, of course, still provide the type explicitly thus:
+        </p>
+<pre class="programlisting"><span class="comment">// Explicit double precision:  both arguments are double:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>        <span class="identifier">mydist1</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+
+<span class="comment">// Explicit float precision, double arguments are truncated to float:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>         <span class="identifier">mydist2</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+
+<span class="comment">// Explicit float precision, integer & double arguments converted to float:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>         <span class="identifier">mydist3</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+
+<span class="comment">// Explicit float precision, float arguments, so no conversion:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>         <span class="identifier">mydist4</span><span class="special">(</span><span class="number">8.F</span><span class="special">,</span> <span class="number">0.25F</span><span class="special">);</span>
+
+<span class="comment">// Explicit float precision, integer arguments promoted to float.</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">float</span><span class="special">></span>         <span class="identifier">mydist5</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+<span class="comment">// Explicit double precision:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>        <span class="identifier">mydist6</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+
+<span class="comment">// Explicit long double precision:</span>
+<span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span>   <span class="identifier">mydist7</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+</pre>
+<p>
+          And you can use your own RealType, for example, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span></code>
+          (an arbitrary 50 decimal digits precision type), then we can write:
+        </p>
+<pre class="programlisting"> <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">;</span>
+
+ <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">></span>  <span class="identifier">mydist8</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
+ <span class="comment">// `integer` arguments are promoted to your RealType exactly, but</span>
+ <span class="comment">// `double` argument are converted to RealType,</span>
+ <span class="comment">// possibly losing precision, so don't write:</span>
+
+ <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">></span>  <span class="identifier">mydist20</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">0.23456789012345678901234567890</span><span class="special">);</span>
+<span class="comment">// to avoid truncation of second parameter to `0.2345678901234567`.</span>
+
+ <span class="identifier">negative_binomial_distribution</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">></span>  <span class="identifier">mydist21</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="identifier">cpp_dec_float_50</span><span class="special">(</span><span class="string">"0.23456789012345678901234567890"</span><span class="special">)</span> <span class="special">);</span>
+
+ <span class="comment">// Ensure that all potentially significant digits are shown.</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">cpp_dec_float_50</span><span class="special">>::</span><span class="identifier">digits10</span><span class="special">);</span>
+ <span class="identifier">cpp_dec_float_50</span> <span class="identifier">x</span><span class="special">(</span><span class="string">"1.23456789012345678901234567890"</span><span class="special">);</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">mydist8</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting"><span class="identifier">showing</span>  <span class="number">0.00012630010495970320103876754721976419438231705359935</span>
+</pre>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            When using multiprecision, it is all too easy to get accidental truncation!
+          </p></td></tr>
+</table></div>
+<p>
+          For example, if you write
+        </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">mydist8</span><span class="special">,</span> <span class="number">1.23456789012345678901234567890</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          showing 0.00012630010495970318465064569310967179576805651692929, which
+          is wrong at about the 17th decimal digit!
+        </p>
+<p>
+          This is because the value provided is truncated to a <code class="computeroutput"><span class="keyword">double</span></code>,
+          effectively <code class="computeroutput"><span class="keyword">double</span> <span class="identifier">x</span>
+          <span class="special">=</span> <span class="number">1.23456789012345678901234567890</span><span class="special">;</span></code>
+        </p>
+<p>
+          Then the now <code class="computeroutput"><span class="keyword">double</span> <span class="identifier">x</span></code>
+          is passed to function <code class="computeroutput"><span class="identifier">pdf</span></code>,
+          and this truncated <code class="computeroutput"><span class="keyword">double</span></code>
+          value is finally promoted to <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>.
+        </p>
+<p>
+          Another way of quietly getting the wrong answer is to write:
+        </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">mydist8</span><span class="special">,</span> <span class="identifier">cpp_dec_float_50</span><span class="special">(</span><span class="number">1.23456789012345678901234567890</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          A correct way from a multi-digit string value is
+        </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">mydist8</span><span class="special">,</span> <span class="identifier">cpp_dec_float_50</span><span class="special">(</span><span class="string">"1.23456789012345678901234567890"</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Getting about 17 decimal digits followed by many zeros is often a sign
+            of accidental truncation.
+          </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.stat_tut.weg.dist_construct_eg.h0"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.dist_construct_eg.default_arguments_to_distributio"></a></span><a class="link" href="dist_construct_eg.html#math_toolkit.stat_tut.weg.dist_construct_eg.default_arguments_to_distributio">Default
+          arguments to distribution constructors.</a>
+        </h5>
+<p>
+          Note that default constructor arguments are only provided for some distributions.
+          So if you wrongly assume a default argument, you will get an error message,
+          for example:
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special"><></span> <span class="identifier">mydist8</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">error C2512 no appropriate default constructor available.</pre>
+<p>
+          No default constructors are provided for the <code class="computeroutput"><span class="identifier">negative</span>
+          <span class="identifier">binomial</span></code> distribution, because
+          it is difficult to chose any sensible default values for this distribution.
+        </p>
+<p>
+          For other distributions, like the normal distribution, it is obviously
+          very useful to provide 'standard' defaults for the mean (zero) and standard
+          deviation (unity) thus:
+        </p>
+<pre class="programlisting"><span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+          So in this case we can write:
+        </p>
+<pre class="programlisting">  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span>
+
+  <span class="identifier">normal</span> <span class="identifier">norm1</span><span class="special">;</span>       <span class="comment">// Standard normal distribution.</span>
+  <span class="identifier">normal</span> <span class="identifier">norm2</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>    <span class="comment">// Mean = 2, std deviation = 1.</span>
+  <span class="identifier">normal</span> <span class="identifier">norm3</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span> <span class="comment">// Mean = 2, std deviation = 3.</span>
+
+  <span class="special">}</span>
+  <span class="keyword">catch</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span> <span class="special">&</span><span class="identifier">ex</span><span class="special">)</span>
+  <span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+  <span class="special">}</span>
+
+  <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>  <span class="comment">// int main()</span>
+</pre>
+<p>
+          There is no useful output from this demonstration program, of course.
+        </p>
+<p>
+          See distribution_construction.cpp
+          for full source code.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../weg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="st_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/error_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/error_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,196 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Error Handling Example</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="nccs_eg/nccs_power_eg.html" title="Tables of the power function of the chi2 test.">
+<link rel="next" href="find_eg.html" title="Find Location and Scale Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="nccs_eg/nccs_power_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_error_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.error_eg"></a><a class="link" href="error_eg.html" title="Error Handling Example">Error Handling
+        Example</a>
+</h4></div></div></div>
+<p>
+          See <a class="link" href="../../error_handling.html" title="Error Handling">error handling documentation</a>
+          for a detailed explanation of the mechanism of handling errors, including
+          the common "bad" arguments to distributions and functions, and
+          how to use <a class="link" href="../../../policy.html" title="Chapter 13. Policies">Policies</a> to control it.
+        </p>
+<p>
+          But, by default, <span class="bold"><strong>exceptions will be raised</strong></span>,
+          for domain errors, pole errors, numeric overflow, and internal evaluation
+          errors. To avoid the exceptions from getting thrown and instead get an
+          appropriate value returned, usually a NaN (domain errors pole errors or
+          internal errors), or infinity (from overflow), you need to change the policy.
+        </p>
+<p>
+          The following example demonstrates the effect of setting the macro BOOST_MATH_DOMAIN_ERROR_POLICY
+          when an invalid argument is encountered. For the purposes of this example,
+          we'll pass a negative degrees of freedom parameter to the student's t distribution.
+        </p>
+<p>
+          Since we know that this is a single file program we could just add:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+</pre>
+<p>
+          to the top of the source file to change the default policy to one that
+          simply returns a NaN when a domain error occurs. Alternatively we could
+          use:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+</pre>
+<p>
+          To ensure the <code class="computeroutput"><span class="special">::</span><span class="identifier">errno</span></code>
+          is set when a domain error occurs as well as returning a NaN.
+        </p>
+<p>
+          This is safe provided the program consists of a single translation unit
+          <span class="emphasis"><em>and</em></span> we place the define <span class="emphasis"><em>before</em></span>
+          any #includes. Note that should we add the define after the includes then
+          it will have no effect! A warning such as:
+        </p>
+<pre class="programlisting">warning C4005: 'BOOST_MATH_OVERFLOW_ERROR_POLICY' : macro redefinition</pre>
+<p>
+          is a certain sign that it will <span class="emphasis"><em>not</em></span> have the desired
+          effect.
+        </p>
+<p>
+          We'll begin our sample program with the needed includes:
+        </p>
+<pre class="programlisting">   <span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+
+<span class="comment">// Boost</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span>  <span class="comment">// Probability of students_t(df, t).</span>
+
+<span class="comment">// std</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">stdexcept</span><span class="special">></span>
+   <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstddef</span><span class="special">></span>
+   <span class="comment">// using ::errno</span>
+</pre>
+<p>
+          Next we'll define the program's main() to call the student's t distribution
+          with an invalid degrees of freedom parameter, the program is set up to
+          handle either an exception or a NaN:
+        </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Example error handling using Student's t function. "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"BOOST_MATH_DOMAIN_ERROR_POLICY is set to: "</span>
+      <span class="special"><<</span> <span class="identifier">BOOST_STRINGIZE</span><span class="special">(</span><span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+   <span class="keyword">double</span> <span class="identifier">degrees_of_freedom</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">;</span> <span class="comment">// A bad argument!</span>
+   <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>
+
+   <span class="keyword">try</span>
+   <span class="special">{</span>
+      <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// Clear/reset.</span>
+      <span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">degrees_of_freedom</span><span class="special">);</span> <span class="comment">// exception is thrown here if enabled.</span>
+      <span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">t</span><span class="special">);</span>
+      <span class="comment">// Test for error reported by other means:</span>
+      <span class="keyword">if</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">isnan</span><span class="special">)(</span><span class="identifier">p</span><span class="special">))</span>
+      <span class="special">{</span>
+         <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cdf returned a NaN!"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+         <span class="keyword">if</span> <span class="special">(</span><span class="identifier">errno</span> <span class="special">!=</span> <span class="number">0</span><span class="special">)</span>
+         <span class="special">{</span> <span class="comment">// So errno has been set.</span>
+           <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"errno is set to: "</span> <span class="special"><<</span> <span class="identifier">errno</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+         <span class="special">}</span>
+      <span class="special">}</span>
+      <span class="keyword">else</span>
+         <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of Student's t is "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span>
+         <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n   "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+          Here's what the program output looks like with a default build (one that
+          <span class="bold"><strong>does throw exceptions</strong></span>):
+        </p>
+<pre class="programlisting">Example error handling using Student's t function.
+BOOST_MATH_DOMAIN_ERROR_POLICY is set to: throw_on_error
+
+Message from thrown exception was:
+   Error in function boost::math::students_t_distribution<double>::students_t_distribution:
+   Degrees of freedom argument is -1, but must be > 0 !
+</pre>
+<p>
+          Alternatively let's build with:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+</pre>
+<p>
+          Now the program output is:
+        </p>
+<pre class="programlisting">Example error handling using Student's t function.
+BOOST_MATH_DOMAIN_ERROR_POLICY is set to: ignore_error
+cdf returned a NaN!
+</pre>
+<p>
+          And finally let's build with:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+</pre>
+<p>
+          Which gives the output show errno:
+        </p>
+<pre class="programlisting">Example error handling using Student's t function.
+BOOST_MATH_DOMAIN_ERROR_POLICY is set to: errno_on_error
+cdf returned a NaN!
+errno is set to: 33
+</pre>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            If throwing of exceptions is enabled (the default) but you do <span class="bold"><strong>not</strong></span> have try & catch block, then the program
+            will terminate with an uncaught exception and probably abort.
+          </p>
+<p>
+            Therefore to get the benefit of helpful error messages, enabling <span class="bold"><strong>all exceptions and using try & catch</strong></span> is recommended
+            for most applications.
+          </p>
+<p>
+            However, for simplicity, the is not done for most examples.
+          </p>
+</td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nccs_eg/nccs_power_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/f_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/f_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,319 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>F Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="cs_eg/chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation">
+<link rel="next" href="binom_eg.html" title="Binomial Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="cs_eg/chi_sq_size.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_f_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.f_eg"></a><a class="link" href="f_eg.html" title="F Distribution Examples">F Distribution Examples</a>
+</h4></div></div></div>
+<p>
+          Imagine that you want to compare the standard deviations of two sample
+          to determine if they differ in any significant way, in this situation you
+          use the F distribution and perform an F-test. This situation commonly occurs
+          when conducting a process change comparison: "is a new process more
+          consistent that the old one?".
+        </p>
+<p>
+          In this example we'll be using the data for ceramic strength from http://www.itl.nist.gov/div898/handbook/eda/section4/eda42a1.htm.
+          The data for this case study were collected by Said Jahanmir of the NIST
+          Ceramics Division in 1996 in connection with a NIST/industry ceramics consortium
+          for strength optimization of ceramic strength.
+        </p>
+<p>
+          The example program is f_test.cpp,
+          program output has been deliberately made as similar as possible to the
+          DATAPLOT output in the corresponding <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda359.htm" target="_top">NIST
+          EngineeringStatistics Handbook example</a>.
+        </p>
+<p>
+          We'll begin by defining the procedure to conduct the test:
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f_test</span><span class="special">(</span>
+    <span class="keyword">double</span> <span class="identifier">sd1</span><span class="special">,</span>     <span class="comment">// Sample 1 std deviation</span>
+    <span class="keyword">double</span> <span class="identifier">sd2</span><span class="special">,</span>     <span class="comment">// Sample 2 std deviation</span>
+    <span class="keyword">double</span> <span class="identifier">N1</span><span class="special">,</span>      <span class="comment">// Sample 1 size</span>
+    <span class="keyword">double</span> <span class="identifier">N2</span><span class="special">,</span>      <span class="comment">// Sample 2 size</span>
+    <span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">)</span>  <span class="comment">// Significance level</span>
+<span class="special">{</span>
+</pre>
+<p>
+          The procedure begins by printing out a summary of our input data:
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+<span class="comment">// Print header:</span>
+<span class="identifier">cout</span> <span class="special"><<</span>
+   <span class="string">"____________________________________\n"</span>
+   <span class="string">"F test for equal standard deviations\n"</span>
+   <span class="string">"____________________________________\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Sample 1:\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">N1</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Sample Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">sd1</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Sample 2:\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">N2</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Sample Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">sd2</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+          The test statistic for an F-test is simply the ratio of the square of the
+          two standard deviations:
+        </p>
+<p>
+          F = s<sub>1</sub><sup>2</sup> / s<sub>2</sub><sup>2</sup>
+        </p>
+<p>
+          where s<sub>1</sub> is the standard deviation of the first sample and s<sub>2</sub>
+is the standard
+          deviation of the second sample. Or in code:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">F</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">sd1</span> <span class="special">/</span> <span class="identifier">sd2</span><span class="special">);</span>
+<span class="identifier">F</span> <span class="special">*=</span> <span class="identifier">F</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Test Statistic"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">F</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+          At this point a word of caution: the F distribution is asymmetric, so we
+          have to be careful how we compute the tests, the following table summarises
+          the options available:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Hypothesis
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Test
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    The null-hypothesis: there is no difference in standard deviations
+                    (two sided test)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Reject if F <= F<sub>(1-alpha/2; N1-1, N2-1)</sub> or F >= F<sub>(alpha/2;
+                    N1-1, N2-1)</sub>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    The alternative hypothesis: there is a difference in means (two
+                    sided test)
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Reject if F<sub>(1-alpha/2; N1-1, N2-1)</sub> <= F <= F<sub>(alpha/2; N1-1,
+                    N2-1)</sub>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    The alternative hypothesis: Standard deviation of sample 1 is
+                    greater than that of sample 2
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Reject if F < F<sub>(alpha; N1-1, N2-1)</sub>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    The alternative hypothesis: Standard deviation of sample 1 is
+                    less than that of sample 2
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Reject if F > F<sub>(1-alpha; N1-1, N2-1)</sub>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Where F<sub>(1-alpha; N1-1, N2-1)</sub> is the lower critical value of the F distribution
+          with degrees of freedom N1-1 and N2-1, and F<sub>(alpha; N1-1, N2-1)</sub> is the upper
+          critical value of the F distribution with degrees of freedom N1-1 and N2-1.
+        </p>
+<p>
+          The upper and lower critical values can be computed using the quantile
+          function:
+        </p>
+<p>
+          F<sub>(1-alpha; N1-1, N2-1)</sub> = <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">fisher_f</span><span class="special">(</span><span class="identifier">N1</span><span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">N2</span><span class="special">-</span><span class="number">1</span><span class="special">),</span>
+          <span class="identifier">alpha</span><span class="special">)</span></code>
+        </p>
+<p>
+          F<sub>(alpha; N1-1, N2-1)</sub> = <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">fisher_f</span><span class="special">(</span><span class="identifier">N1</span><span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">N2</span><span class="special">-</span><span class="number">1</span><span class="special">),</span>
+          <span class="identifier">alpha</span><span class="special">))</span></code>
+        </p>
+<p>
+          In our example program we need both upper and lower critical values for
+          alpha and for alpha/2:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
+<span class="keyword">double</span> <span class="identifier">ucv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
+<span class="keyword">double</span> <span class="identifier">lcv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">lcv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Upper Critical Value at alpha: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">ucv</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Upper Critical Value at alpha/2: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">ucv2</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Lower Critical Value at alpha: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">lcv</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Lower Critical Value at alpha/2: "</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="identifier">lcv2</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+          The final step is to perform the comparisons given above, and print out
+          whether the hypothesis is rejected or not:
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span>
+   <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">alpha</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Alternative Hypothesis                                    Conclusion\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviations are unequal (two sided test)          "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">((</span><span class="identifier">ucv2</span> <span class="special"><</span> <span class="identifier">F</span><span class="special">)</span> <span class="special">||</span> <span class="special">(</span><span class="identifier">lcv2</span> <span class="special">></span> <span class="identifier">F</span><span class="special">))</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviation 1 is less than standard deviation 2    "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">lcv</span> <span class="special">></span> <span class="identifier">F</span><span class="special">)</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviation 1 is greater than standard deviation 2 "</span><span class="special">;</span>
+<span class="keyword">if</span><span class="special">(</span><span class="identifier">ucv</span> <span class="special"><</span> <span class="identifier">F</span><span class="special">)</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ACCEPTED\n"</span><span class="special">;</span>
+<span class="keyword">else</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"REJECTED\n"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          Using the ceramic strength data as an example we get the following output:
+        </p>
+<pre class="programlisting">F test for equal standard deviations
+____________________________________
+
+Sample 1:
+Number of Observations                                 =  240
+Sample Standard Deviation                              =  65.549
+
+Sample 2:
+Number of Observations                                 =  240
+Sample Standard Deviation                              =  61.854
+
+Test Statistic                                         =  1.123
+
+CDF of test statistic:                                 =  8.148e-001
+Upper Critical Value at alpha:                         =  1.238e+000
+Upper Critical Value at alpha/2:                       =  1.289e+000
+Lower Critical Value at alpha:                         =  8.080e-001
+Lower Critical Value at alpha/2:                       =  7.756e-001
+
+Results for Alternative Hypothesis and alpha           =  0.0500
+
+Alternative Hypothesis                                    Conclusion
+Standard deviations are unequal (two sided test)          REJECTED
+Standard deviation 1 is less than standard deviation 2    REJECTED
+Standard deviation 1 is greater than standard deviation 2 REJECTED
+</pre>
+<p>
+          In this case we are unable to reject the null-hypothesis, and must instead
+          reject the alternative hypothesis.
+        </p>
+<p>
+          By contrast let's see what happens when we use some different <a href="http://www.itl.nist.gov/div898/handbook/prc/section3/prc32.htm" target="_top">sample
+          data</a>:, once again from the NIST Engineering Statistics Handbook:
+          A new procedure to assemble a device is introduced and tested for possible
+          improvement in time of assembly. The question being addressed is whether
+          the standard deviation of the new assembly process (sample 2) is better
+          (i.e., smaller) than the standard deviation for the old assembly process
+          (sample 1).
+        </p>
+<pre class="programlisting">____________________________________
+F test for equal standard deviations
+____________________________________
+
+Sample 1:
+Number of Observations                                 =  11.00000
+Sample Standard Deviation                              =  4.90820
+
+Sample 2:
+Number of Observations                                 =  9.00000
+Sample Standard Deviation                              =  2.58740
+
+Test Statistic                                         =  3.59847
+
+CDF of test statistic:                                 =  9.589e-001
+Upper Critical Value at alpha:                         =  3.347e+000
+Upper Critical Value at alpha/2:                       =  4.295e+000
+Lower Critical Value at alpha:                         =  3.256e-001
+Lower Critical Value at alpha/2:                       =  2.594e-001
+
+Results for Alternative Hypothesis and alpha           =  0.0500
+
+Alternative Hypothesis                                    Conclusion
+Standard deviations are unequal (two sided test)          REJECTED
+Standard deviation 1 is less than standard deviation 2    REJECTED
+Standard deviation 1 is greater than standard deviation 2 ACCEPTED
+</pre>
+<p>
+          In this case we take our null hypothesis as "standard deviation 1
+          is less than or equal to standard deviation 2", since this represents
+          the "no change" situation. So we want to compare the upper critical
+          value at <span class="emphasis"><em>alpha</em></span> (a one sided test) with the test statistic,
+          and since 3.35 < 3.6 this hypothesis must be rejected. We therefore
+          conclude that there is a change for the better in our standard deviation.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cs_eg/chi_sq_size.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Find Location and Scale Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="error_eg.html" title="Error Handling Example">
+<link rel="next" href="find_eg/find_location_eg.html" title="Find Location (Mean) Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="error_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_eg/find_location_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_find_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.find_eg"></a><a class="link" href="find_eg.html" title="Find Location and Scale Examples">Find Location and
+        Scale Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="find_eg/find_location_eg.html">Find
+          Location (Mean) Example</a></span></dt>
+<dt><span class="section"><a href="find_eg/find_scale_eg.html">Find
+          Scale (Standard Deviation) Example</a></span></dt>
+<dt><span class="section"><a href="find_eg/find_mean_and_sd_eg.html">Find
+          mean and standard deviation example</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="error_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_eg/find_location_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_location_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_location_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,180 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Find Location (Mean) Example</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../find_eg.html" title="Find Location and Scale Examples">
+<link rel="prev" href="../find_eg.html" title="Find Location and Scale Examples">
+<link rel="next" href="find_scale_eg.html" title="Find Scale (Standard Deviation) Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../find_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_scale_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_find_eg_find_location_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.find_eg.find_location_eg"></a><a class="link" href="find_location_eg.html" title="Find Location (Mean) Example">Find
+          Location (Mean) Example</a>
+</h5></div></div></div>
+<p>
+            First we need some includes to access the normal distribution, the algorithms
+            to find location (and some std output of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for normal_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for cauchy_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_location</span><span class="special">;</span> <span class="comment">// for mean</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_scale</span><span class="special">;</span> <span class="comment">// for standard devation</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span> <span class="comment">// Needed if you want to use the complement version.</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+</pre>
+<p>
+            For this example, we will use the standard normal distribution, with
+            mean (location) zero and standard deviation (scale) unity. This is also
+            the default for this implementation.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span>  <span class="comment">// Default 'standard' normal distribution with zero mean and </span>
+<span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// normal default standard deviation is 1.</span>
+</pre>
+<p>
+            Suppose we want to find a different normal distribution whose mean is
+            shifted so that only fraction p (here 0.001 or 0.1%) are below a certain
+            chosen limit (here -2, two standard deviations).
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p</span>
+<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.001</span><span class="special">;</span> <span class="comment">// only 0.1% below z</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", standard deviation "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", has "</span> <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", standard deviation "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", has "</span> <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Note: uses complement.</span>
+</pre>
+<pre class="programlisting">Normal distribution with mean = 0, standard deviation 1, has fraction <= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p = 0.97725
+</pre>
+<p>
+            We can now use ''find_location'' to give a new offset mean.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"offset location (mean) = "</span> <span class="special"><<</span> <span class="identifier">l</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            that outputs:
+          </p>
+<pre class="programlisting">offset location (mean) = 1.09023
+</pre>
+<p>
+            showing that we need to shift the mean just over one standard deviation
+            from its previous value of zero.
+          </p>
+<p>
+            Then we can check that we have achieved our objective by constructing
+            a new distribution with the offset mean (but same standard deviation):
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span> <span class="comment">// Same standard_deviation (scale) but with mean (location) shifted.</span>
+</pre>
+<p>
+            And re-calculating the fraction below our chosen limit.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span>
+    <span class="special"><<</span> <span class="string">" has "</span> <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span>
+    <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span>
+    <span class="special"><<</span> <span class="string">" has "</span> <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span>
+    <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Normal distribution with mean = 1.09023 has fraction <= -2, p = 0.001
+Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.find_eg.find_location_eg.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_"></a></span><a class="link" href="find_location_eg.html#math_toolkit.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_">Controlling
+            Error Handling from find_location</a>
+          </h5>
+<p>
+            We can also control the policy for handling various errors. For example,
+            we can define a new (possibly unwise) policy to ignore domain errors
+            ('bad' arguments).
+          </p>
+<p>
+            Unless we are using the boost::math namespace, we will need:
+          </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">;</span>
+</pre>
+<p>
+            Using a typedef is often convenient, especially if it is re-used, although
+            it is not required, as the various examples below show.
+          </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span> <span class="special">></span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
+<span class="comment">// find_location with new policy, using typedef.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">,</span> <span class="identifier">ignore_domain_policy</span><span class="special">());</span>
+<span class="comment">// Default policy policy<>, needs "using boost::math::policies::policy;"</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><>());</span>
+<span class="comment">// Default policy, fully specified.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><>());</span>
+<span class="comment">// A new policy, ignoring domain errors, without using a typedef.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span> <span class="special">>());</span>
+</pre>
+<p>
+            If we want to use a probability that is the <a class="link" href="../../overview/complements.html" title="Complements are supported too - and when to use them">complement
+            of our probability</a>, we should not even think of writing <code class="computeroutput"><span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">)</span></code>, but, <a class="link" href="../../overview/complements.html#why_complements">to
+            avoid loss of accuracy</a>, use the complement version.
+          </p>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span> <span class="comment">// = 1 - p; // complement.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">));</span>
+
+<span class="identifier">normal</span> <span class="identifier">np95pc</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span> <span class="comment">// Same standard_deviation (scale) but with mean(location) shifted</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span> <span class="special"><<</span> <span class="string">" has "</span>
+  <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np95pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span> <span class="special"><<</span> <span class="string">" has "</span>
+  <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">np95pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            See find_location_example.cpp
+            for full source code: the program output looks like this:
+          </p>
+<pre class="programlisting">Example: Find location (mean).
+Normal distribution with mean = 0, standard deviation 1, has fraction <= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p = 0.97725
+offset location (mean) = 1.09023
+Normal distribution with mean = 1.09023 has fraction <= -2, p = 0.001
+Normal distribution with mean = 1.09023 has fraction > -2, p = 0.999
+Normal distribution with mean = 0.355146 has fraction <= 2 = 0.95
+Normal distribution with mean = 0.355146 has fraction > 2 = 0.05
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../find_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_scale_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_mean_and_sd_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,445 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Find mean and standard deviation example</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../find_eg.html" title="Find Location and Scale Examples">
+<link rel="prev" href="find_scale_eg.html" title="Find Scale (Standard Deviation) Example">
+<link rel="next" href="../nag_library.html" title="Comparison with C, R, FORTRAN-style Free Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="find_scale_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../nag_library.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_find_eg_find_mean_and_sd_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg"></a><a class="link" href="find_mean_and_sd_eg.html" title="Find mean and standard deviation example">Find
+          mean and standard deviation example</a>
+</h5></div></div></div>
+<p>
+            First we need some includes to access the normal distribution, the algorithms
+            to find location and scale (and some std output of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for normal_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for cauchy_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_location</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_scale</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">noshowpoint</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">stdexcept</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">;</span>
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_sca"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_sca">Using
+            find_location and find_scale to meet dispensing and measurement specifications</a>
+          </h5>
+<p>
+            Consider an example from K Krishnamoorthy, Handbook of Statistical Distributions
+            with Applications, ISBN 1-58488-635-8, (2006) p 126, example 10.3.7.
+          </p>
+<p>
+            "A machine is set to pack 3 kg of ground beef per pack. Over a long
+            period of time it is found that the average packed was 3 kg with a standard
+            deviation of 0.1 kg. Assume the packing is normally distributed."
+          </p>
+<p>
+            We start by constructing a normal distribution with the given parameters:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="identifier">normal</span> <span class="identifier">packs</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+</pre>
+<p>
+            We can then find the fraction (or %) of packages that weigh more than
+            3.1 kg.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">max_weight</span> <span class="special">=</span> <span class="number">3.1</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Percentage of packs > "</span> <span class="special"><<</span> <span class="identifier">max_weight</span> <span class="special"><<</span> <span class="string">" is "</span>
+<span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">max_weight</span><span class="special">))</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X > 3.1)</span>
+</pre>
+<p>
+            We might want to ensure that 95% of packs are over a minimum weight specification,
+            then we want the value of the mean such that P(X < 2.9) = 0.05.
+          </p>
+<p>
+            Using the mean of 3 kg, we can estimate the fraction of packs that fail
+            to meet the specification of 2.9 kg.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">minimum_weight</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs <= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs <= 2.9 with a mean of 3 is 0.841345</span>
+</pre>
+<p>
+            This is 0.84 - more than the target fraction of 0.95. If we want 95%
+            to be over the minimum weight, what should we set the mean weight to
+            be?
+          </p>
+<p>
+            Using the KK StatCalc program supplied with the book and the method given
+            on page 126 gives 3.06449.
+          </p>
+<p>
+            We can confirm this by constructing a new distribution which we call
+            'xpacks' with a safety margin mean of 3.06449 thus:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">over_mean</span> <span class="special">=</span> <span class="number">3.06449</span><span class="special">;</span>
+<span class="identifier">normal</span> <span class="identifier">xpacks</span><span class="special">(</span><span class="identifier">over_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+<span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">xpacks</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">xpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs >= 2.9 with a mean of 3.06449 is 0.950005</span>
+</pre>
+<p>
+            Using this Math Toolkit, we can calculate the required mean directly
+            thus:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">under_fraction</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span>  <span class="comment">// so 95% are above the minimum weight mean - sd = 2.9</span>
+<span class="keyword">double</span> <span class="identifier">low_limit</span> <span class="special">=</span> <span class="identifier">standard_deviation</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">offset</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">-</span> <span class="identifier">low_limit</span> <span class="special">-</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">nominal_mean</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">+</span> <span class="identifier">offset</span><span class="special">;</span>
+<span class="comment">// mean + (mean - low_limit - quantile(packs, under_fraction));</span>
+
+<span class="identifier">normal</span> <span class="identifier">nominal_packs</span><span class="special">(</span><span class="identifier">nominal_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Setting the packer to "</span> <span class="special"><<</span> <span class="identifier">nominal_mean</span> <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">nominal_packs</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Setting the packer to 3.06449 will mean that fraction of packs >= 2.9 is 0.95</span>
+</pre>
+<p>
+            This calculation is generalized as the free function called <a class="link" href="../../../dist_ref/dist_algorithms.html" title="Distribution Algorithms">find_location</a>.
+          </p>
+<p>
+            To use this we will need to
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_location</span><span class="special">;</span>
+</pre>
+<p>
+            and then use find_location function to find safe_mean, & construct
+            a new normal distribution called 'goodpacks'.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">safe_mean</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">normal</span> <span class="identifier">good_packs</span><span class="special">(</span><span class="identifier">safe_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+</pre>
+<p>
+            with the same confirmation as before:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Setting the packer to "</span> <span class="special"><<</span> <span class="identifier">nominal_mean</span> <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">good_packs</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Setting the packer to 3.06449 will mean that fraction of packs >= 2.9 is 0.95</span>
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.h1"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_">Using
+            Cauchy-Lorentz instead of normal distribution</a>
+          </h5>
+<p>
+            After examining the weight distribution of a large number of packs, we
+            might decide that, after all, the assumption of a normal distribution
+            is not really justified. We might find that the fit is better to a <a class="link" href="../../../dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy Distribution</a>.
+            This distribution has wider 'wings', so that whereas most of the values
+            are closer to the mean than the normal, there are also more values than
+            'normal' that lie further from the mean than the normal.
+          </p>
+<p>
+            This might happen because a larger than normal lump of meat is either
+            included or excluded.
+          </p>
+<p>
+            We first create a <a class="link" href="../../../dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy
+            Distribution</a> with the original mean and standard deviation, and
+            estimate the fraction that lie below our minimum weight specification.
+          </p>
+<pre class="programlisting"><span class="identifier">cauchy</span> <span class="identifier">cpacks</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special"><<</span> <span class="identifier">mean</span> <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">cpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Cauchy Setting the packer to 3 will mean that fraction of packs >= 2.9 is 0.75</span>
+</pre>
+<p>
+            Note that far fewer of the packs meet the specification, only 75% instead
+            of 95%. Now we can repeat the find_location, using the cauchy distribution
+            as template parameter, in place of the normal used above.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">lc</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">cauchy</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"find_location<cauchy>(minimum_weight, over fraction, standard_deviation); "</span> <span class="special"><<</span> <span class="identifier">lc</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_location<cauchy>(minimum_weight, over fraction, packs.standard_deviation()); 3.53138</span>
+</pre>
+<p>
+            Note that the safe_mean setting needs to be much higher, 3.53138 instead
+            of 3.06449, so we will make rather less profit.
+          </p>
+<p>
+            And again confirm that the fraction meeting specification is as expected.
+          </p>
+<pre class="programlisting"><span class="identifier">cauchy</span> <span class="identifier">goodcpacks</span><span class="special">(</span><span class="identifier">lc</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special"><<</span> <span class="identifier">lc</span> <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">goodcpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Cauchy Setting the packer to 3.53138 will mean that fraction of packs >= 2.9 is 0.95</span>
+</pre>
+<p>
+            Finally we could estimate the effect of a much tighter specification,
+            that 99% of packs met the specification.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Cauchy Setting the packer to "</span>
+  <span class="special"><<</span> <span class="identifier">find_location</span><span class="special"><</span><span class="identifier">cauchy</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="number">0.99</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">goodcpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Setting the packer to 3.13263 will mean that fraction of packs >=
+            2.9 is 0.99, but will more than double the mean loss from 0.0644 to 0.133
+            kg per pack.
+          </p>
+<p>
+            Of course, this calculation is not limited to packs of meat, it applies
+            to dispensing anything, and it also applies to a 'virtual' material like
+            any measurement.
+          </p>
+<p>
+            The only caveat is that the calculation assumes that the standard deviation
+            (scale) is known with a reasonably low uncertainty, something that is
+            not so easy to ensure in practice. And that the distribution is well
+            defined, <a class="link" href="../../../dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal
+            Distribution</a> or <a class="link" href="../../../dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy
+            Distribution</a>, or some other.
+          </p>
+<p>
+            If one is simply dispensing a very large number of packs, then it may
+            be feasible to measure the weight of hundreds or thousands of packs.
+            With a healthy 'degrees of freedom', the confidence intervals for the
+            standard deviation are not too wide, typically about + and - 10% for
+            hundreds of observations.
+          </p>
+<p>
+            For other applications, where it is more difficult or expensive to make
+            many observations, the confidence intervals are depressingly wide.
+          </p>
+<p>
+            See <a class="link" href="../cs_eg/chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation">Confidence
+            Intervals on the standard deviation</a> for a worked example chi_square_std_dev_test.cpp
+            of estimating these intervals.
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.h2"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_d"></a></span><a class="link" href="find_mean_and_sd_eg.html#math_toolkit.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_d">Changing
+            the scale or standard deviation</a>
+          </h5>
+<p>
+            Alternatively, we could invest in a better (more precise) packer (or
+            measuring device) with a lower standard deviation, or scale.
+          </p>
+<p>
+            This might cost more, but would reduce the amount we have to 'give away'
+            in order to meet the specification.
+          </p>
+<p>
+            To estimate how much better (how much smaller standard deviation) it
+            would have to be, we need to get the 5% quantile to be located at the
+            under_weight limit, 2.9
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Quantile of 0.05 = 2.83551, mean = 3, sd = 0.1
+          </p>
+<p>
+            With the current packer (mean = 3, sd = 0.1), the 5% quantile is at 2.8551
+            kg, a little below our target of 2.9 kg. So we know that the standard
+            deviation is going to have to be smaller.
+          </p>
+<p>
+            Let's start by guessing that it (now 0.1) needs to be halved, to a standard
+            deviation of 0.05 kg.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Quantile of 0.05 = 2.91776, mean = 3, sd = 0.05</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs >= 2.9 with a mean of 3 and standard deviation of 0.05 is 0.97725</span>
+</pre>
+<p>
+            So 0.05 was quite a good guess, but we are a little over the 2.9 target,
+            so the standard deviation could be a tiny bit more. So we could do some
+            more guessing to get closer, say by increasing standard deviation to
+            0.06 kg, constructing another new distribution called pack06.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Quantile of 0.05 = 2.90131, mean = 3, sd = 0.06</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs >= 2.9 with a mean of 3 and standard deviation of 0.06 is 0.95221</span>
+</pre>
+<p>
+            Now we are getting really close, but to do the job properly, we might
+            need to use root finding method, for example the tools provided, and
+            used elsewhere, in the Math Toolkit, see <a class="link" href="../../../internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">Root
+            Finding Without Derivatives</a>.
+          </p>
+<p>
+            But in this (normal) distribution case, we can and should be even smarter
+            and make a direct calculation.
+          </p>
+<p>
+            Our required limit is minimum_weight = 2.9 kg, often called the random
+            variate z. For a standard normal distribution, then probability p = N((minimum_weight
+            - mean) / sd).
+          </p>
+<p>
+            We want to find the standard deviation that would be required to meet
+            this limit, so that the p th quantile is located at z (minimum_weight).
+            In this case, the 0.05 (5%) quantile is at 2.9 kg pack weight, when the
+            mean is 3 kg, ensuring that 0.95 (95%) of packs are above the minimum
+            weight.
+          </p>
+<p>
+            Rearranging, we can directly calculate the required standard deviation:
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// standard normal distribution with meamn zero and unit standard deviation.</span>
+<span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">qp</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">sd95</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">minimum_weight</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">qp</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"For the "</span><span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">"th quantile to be located at "</span>
+  <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">", would need a standard deviation of "</span> <span class="special"><<</span> <span class="identifier">sd95</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// For the 0.05th quantile to be located at 2.9, would need a standard deviation of 0.0607957</span>
+</pre>
+<p>
+            We can now construct a new (normal) distribution pack95 for the 'better'
+            packer, and check that our distribution will meet the specification.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack95</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">sd95</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack95</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack95</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs >= 2.9 with a mean of 3 and standard deviation of 0.0607957 is 0.95</span>
+</pre>
+<p>
+            This calculation is generalized in the free function find_scale, as shown
+            below, giving the same standard deviation.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ss</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"find_scale<normal>(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special"><<</span> <span class="identifier">ss</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale<normal>(minimum_weight, under_fraction, packs.mean()); 0.0607957</span>
+</pre>
+<p>
+            If we had defined an over_fraction, or percentage that must pass specification
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">over_fraction</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span>
+</pre>
+<p>
+            And (wrongly) written
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">sso</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+</pre>
+<p>
+            With the default policy, we would get a message like
+          </p>
+<pre class="programlisting">Message from thrown exception was:
+   Error in function boost::math::find_scale<Dist, Policy>(double, double, double, Policy):
+   Computed scale (-0.060795683191176959) is <= 0! Was the complement intended?
+</pre>
+<p>
+            But this would return a <span class="bold"><strong>negative</strong></span> standard
+            deviation - obviously impossible. The probability should be 1 - over_fraction,
+            not over_fraction, thus:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ss1o</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"find_scale<normal>(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special"><<</span> <span class="identifier">ss1o</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale<normal>(minimum_weight, under_fraction, packs.mean()); 0.0607957</span>
+</pre>
+<p>
+            But notice that using '1 - over_fraction' - will lead to a <a class="link" href="../../overview/complements.html#why_complements">loss
+            of accuracy, especially if over_fraction was close to unity.</a> In
+            this (very common) case, we should instead use the <a class="link" href="../../overview/complements.html" title="Complements are supported too - and when to use them">complements</a>,
+            giving the most accurate result.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ssc</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()));</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"find_scale<normal>(complement(minimum_weight, over_fraction, packs.mean())); "</span> <span class="special"><<</span> <span class="identifier">ssc</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// find_scale<normal>(complement(minimum_weight, over_fraction, packs.mean())); 0.0607957</span>
+</pre>
+<p>
+            Note that our guess of 0.06 was close to the accurate value of 0.060795683191176959.
+          </p>
+<p>
+            We can again confirm our prediction thus:
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack95c</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">ssc</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">minimum_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack95c</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack95c</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Fraction of packs >= 2.9 with a mean of 3 and standard deviation of 0.0607957 is 0.95</span>
+</pre>
+<p>
+            Notice that these two deceptively simple questions:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                Do we over-fill to make sure we meet a minimum specification (or
+                under-fill to avoid an overdose)?
+              </li></ul></div>
+<p>
+            and/or
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+                Do we measure better?
+              </li></ul></div>
+<p>
+            are actually extremely common.
+          </p>
+<p>
+            The weight of beef might be replaced by a measurement of more or less
+            anything, from drug tablet content, Apollo landing rocket firing, X-ray
+            treatment doses...
+          </p>
+<p>
+            The scale can be variation in dispensing or uncertainty in measurement.
+          </p>
+<p>
+            See find_mean_and_sd_normal.cpp
+            for full source code & appended program output.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_scale_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../nag_library.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,199 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Find Scale (Standard Deviation) Example</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../find_eg.html" title="Find Location and Scale Examples">
+<link rel="prev" href="find_location_eg.html" title="Find Location (Mean) Example">
+<link rel="next" href="find_mean_and_sd_eg.html" title="Find mean and standard deviation example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="find_location_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_mean_and_sd_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_find_eg_find_scale_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.find_eg.find_scale_eg"></a><a class="link" href="find_scale_eg.html" title="Find Scale (Standard Deviation) Example">Find
+          Scale (Standard Deviation) Example</a>
+</h5></div></div></div>
+<p>
+            First we need some includes to access the <a class="link" href="../../../dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal
+            Distribution</a>, the algorithms to find scale (and some std output
+            of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for normal_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_scale</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span> <span class="comment">// Needed if you want to use the complement version.</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span> <span class="comment">// Needed to specify the error handling policy.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+</pre>
+<p>
+            For this example, we will use the standard <a class="link" href="../../../dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal
+            Distribution</a>, with location (mean) zero and standard deviation
+            (scale) unity. Conveniently, this is also the default for this implementation's
+            constructor.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span>  <span class="comment">// Default 'standard' normal distribution with zero mean</span>
+<span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// and standard deviation is 1.</span>
+</pre>
+<p>
+            Suppose we want to find a different normal distribution with standard
+            deviation so that only fraction p (here 0.001 or 0.1%) are below a certain
+            chosen limit (here -2. standard deviations).
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p</span>
+<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.001</span><span class="special">;</span> <span class="comment">// only 0.1% below z = -2</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>  <span class="comment">// aka N01.mean()</span>
+  <span class="special"><<</span> <span class="string">", standard deviation "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span> <span class="comment">// aka N01.standard_deviation()</span>
+  <span class="special"><<</span> <span class="string">", has "</span> <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", standard deviation "</span> <span class="special"><<</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">scale</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", has "</span> <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Note: uses complement.</span>
+</pre>
+<pre class="programlisting">Normal distribution with mean = 0 has fraction <= -2, p = 0.0227501
+Normal distribution with mean = 0 has fraction > -2, p = 0.97725
+</pre>
+<p>
+            Noting that p = 0.02 instead of our target of 0.001, we can now use
+            <code class="computeroutput"><span class="identifier">find_scale</span></code> to give a
+            new standard deviation.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">();</span>
+<span class="keyword">double</span> <span class="identifier">s</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"scale (standard deviation) = "</span> <span class="special"><<</span> <span class="identifier">s</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            that outputs:
+          </p>
+<pre class="programlisting">scale (standard deviation) = 0.647201
+</pre>
+<p>
+            showing that we need to reduce the standard deviation from 1. to 0.65.
+          </p>
+<p>
+            Then we can check that we have achieved our objective by constructing
+            a new distribution with the new standard deviation (but same zero mean):
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span>
+</pre>
+<p>
+            And re-calculating the fraction below (and above) our chosen limit.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span>
+  <span class="special"><<</span> <span class="string">" has "</span> <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span>
+  <span class="special"><<</span> <span class="string">" has "</span> <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span>
+  <span class="special"><<</span> <span class="string">", p = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Normal distribution with mean = 0 has fraction <= -2, p = 0.001
+Normal distribution with mean = 0 has fraction > -2, p = 0.999
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.find_eg.find_scale_eg.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find"></a></span><a class="link" href="find_scale_eg.html#math_toolkit.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find">Controlling
+            how Errors from find_scale are handled</a>
+          </h5>
+<p>
+            We can also control the policy for handling various errors. For example,
+            we can define a new (possibly unwise) policy to ignore domain errors
+            ('bad' arguments).
+          </p>
+<p>
+            Unless we are using the boost::math namespace, we will need:
+          </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">;</span>
+</pre>
+<p>
+            Using a typedef is convenient, especially if it is re-used, although
+            it is not required, as the various examples below show.
+          </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span> <span class="special">></span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
+<span class="comment">// find_scale with new policy, using typedef.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">ignore_domain_policy</span><span class="special">());</span>
+<span class="comment">// Default policy policy<>, needs using boost::math::policies::policy;</span>
+
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><>());</span>
+<span class="comment">// Default policy, fully specified.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><>());</span>
+<span class="comment">// New policy, without typedef.</span>
+<span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">domain_error</span><span class="special"><</span><span class="identifier">ignore_error</span><span class="special">></span> <span class="special">>());</span>
+</pre>
+<p>
+            If we want to express a probability, say 0.999, that is a complement,
+            <code class="computeroutput"><span class="number">1</span> <span class="special">-</span>
+            <span class="identifier">p</span></code> we should not even think
+            of writing <code class="computeroutput"><span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">z</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span>
+            <span class="identifier">p</span><span class="special">,</span>
+            <span class="identifier">l</span><span class="special">)</span></code>,
+            but <a class="link" href="../../overview/complements.html#why_complements">instead</a>, use the <a class="link" href="../../overview/complements.html" title="Complements are supported too - and when to use them">complements</a>
+            version.
+          </p>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="number">0.999</span><span class="special">;</span> <span class="comment">// = 1 - p; // complement of 0.001.</span>
+<span class="identifier">sd</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special"><</span><span class="identifier">normal</span><span class="special">>(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">l</span><span class="special">));</span>
+
+<span class="identifier">normal</span> <span class="identifier">np95pc</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span> <span class="comment">// Same standard_deviation (scale) but with mean(scale) shifted</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span> <span class="special"><<</span> <span class="string">" has "</span>
+  <span class="special"><<</span> <span class="string">"fraction <= "</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np95pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Normal distribution with mean = "</span> <span class="special"><<</span> <span class="identifier">l</span> <span class="special"><<</span> <span class="string">" has "</span>
+  <span class="special"><<</span> <span class="string">"fraction > "</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" = "</span>  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">np95pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Sadly, it is all too easy to get probabilities the wrong way round, when
+            you may get a warning like this:
+          </p>
+<pre class="programlisting">Message from thrown exception was:
+   Error in function boost::math::find_scale<Dist, Policy>(complement(double, double, double, Policy)):
+   Computed scale (-0.48043523852179076) is <= 0! Was the complement intended?
+</pre>
+<p>
+            The default error handling policy is to throw an exception with this
+            message, but if you chose a policy to ignore the error, the (impossible)
+            negative scale is quietly returned.
+          </p>
+<p>
+            See find_scale_example.cpp
+            for full source code: the program output looks like this:
+          </p>
+<pre class="programlisting">Example: Find scale (standard deviation).
+Normal distribution with mean = 0, standard deviation 1, has fraction <= -2, p = 0.0227501
+Normal distribution with mean = 0, standard deviation 1, has fraction > -2, p = 0.97725
+scale (standard deviation) = 0.647201
+Normal distribution with mean = 0 has fraction <= -2, p = 0.001
+Normal distribution with mean = 0 has fraction > -2, p = 0.999
+Normal distribution with mean = 0.946339 has fraction <= -2 = 0.001
+Normal distribution with mean = 0.946339 has fraction > -2 = 0.999
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_location_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="find_mean_and_sd_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/geometric_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/geometric_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,409 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Geometric Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="binom_eg/binom_size_eg.html" title="Estimating Sample Sizes for a Binomial Distribution.">
+<link rel="next" href="neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="binom_eg/binom_size_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_geometric_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.geometric_eg"></a><a class="link" href="geometric_eg.html" title="Geometric Distribution Examples">Geometric Distribution
+        Examples</a>
+</h4></div></div></div>
+<p>
+          For this example, we will opt to #define two macros to control the error
+          and discrete handling policies. For this simple example, we want to avoid
+          throwing an exception (the default policy) and just return infinity. We
+          want to treat the distribution as if it was continuous, so we choose a
+          discrete_quantile policy of real, rather than the default policy integer_round_outwards.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
+</pre>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            It is vital to #include distributions etc <span class="bold"><strong>after</strong></span>
+            the above #defines
+          </p></td></tr>
+</table></div>
+<p>
+          After that we need some includes to provide easy access to the negative
+          binomial distribution, and we need some std library iostream, of course.
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">geometric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="comment">// for geometric_distribution</span>
+  <span class="keyword">using</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">geometric_distribution</span><span class="special">;</span> <span class="comment">// </span>
+  <span class="keyword">using</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">geometric</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">pdf</span><span class="special">;</span> <span class="comment">// Probability mass function.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">;</span> <span class="comment">// Cumulative density function.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quantile</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="comment">// for negative_binomial_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="comment">// for negative_binomial_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">noshowpoint</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">fixed</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">right</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+</pre>
+<p>
+          It is always sensible to use try and catch blocks because defaults policies
+          are to throw an exception if anything goes wrong.
+        </p>
+<p>
+          Simple try'n'catch blocks (see below) will ensure that you get a helpful
+          error message instead of an abrupt (and silent) program abort.
+        </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.geometric_eg.h0"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.geometric_eg.throwing_a_dice"></a></span><a class="link" href="geometric_eg.html#math_toolkit.stat_tut.weg.geometric_eg.throwing_a_dice">Throwing
+          a dice</a>
+        </h5>
+<p>
+          The Geometric distribution describes the probability (<span class="emphasis"><em>p</em></span>)
+          of a number of failures to get the first success in <span class="emphasis"><em>k</em></span>
+          Bernoulli trials. (A <a href="http://en.wikipedia.org/wiki/Bernoulli_distribution" target="_top">Bernoulli
+          trial</a> is one with only two possible outcomes, success of failure,
+          and <span class="emphasis"><em>p</em></span> is the probability of success).
+        </p>
+<p>
+          Suppose an 'fair' 6-face dice is thrown repeatedly:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">1.</span><span class="special">/</span><span class="number">6</span><span class="special">;</span> <span class="comment">// success_fraction (p) = 0.1666</span>
+<span class="comment">// (so failure_fraction is 1 - success_fraction = 5./6 = 1- 0.1666 = 0.8333)</span>
+</pre>
+<p>
+          If the dice is thrown repeatedly until the <span class="bold"><strong>first</strong></span>
+          time a <span class="emphasis"><em>three</em></span> appears. The probablility distribution
+          of the number of times it is thrown <span class="bold"><strong>not</strong></span>
+          getting a <span class="emphasis"><em>three</em></span> (<span class="emphasis"><em>not-a-threes</em></span>
+          number of failures to get a <span class="emphasis"><em>three</em></span>) is a geometric
+          distribution with the success_fraction = 1/6 = 0.1666 ̇.
+        </p>
+<p>
+          We therefore start by constructing a geometric distribution with the one
+          parameter success_fraction, the probability of success.
+        </p>
+<pre class="programlisting"><span class="identifier">geometric</span> <span class="identifier">g6</span><span class="special">(</span><span class="identifier">success_fraction</span><span class="special">);</span> <span class="comment">// type double by default.</span>
+</pre>
+<p>
+          To confirm, we can echo the success_fraction parameter of the distribution.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"success fraction of a six-sided dice is "</span> <span class="special"><<</span> <span class="identifier">g6</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          So the probability of getting a three at the first throw (zero failures)
+          is
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1667</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1667</span>
+</pre>
+<p>
+          Note that the cdf and pdf are identical because the is only one throw.
+          If we want the probability of getting the first <span class="emphasis"><em>three</em></span>
+          on the 2nd throw:
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1389</span>
+</pre>
+<p>
+          If we want the probability of getting the first <span class="emphasis"><em>three</em></span>
+          on the 1st or 2nd throw (allowing one failure):
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"pdf(g6, 0) + pdf(g6, 1) = "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          Or more conveniently, and more generally, we can use the Cumulative Distribution
+          Function CDF.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cdf(g6, 1) = "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.3056</span>
+</pre>
+<p>
+          If we allow many more (12) throws, the probability of getting our <span class="emphasis"><em>three</em></span>
+          gets very high:
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cdf(g6, 12) = "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">12</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.9065 or 90% probability.</span>
+</pre>
+<p>
+          If we want to be much more confident, say 99%, we can estimate the number
+          of throws to be this sure using the inverse or quantile.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"quantile(g6, 0.99) = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">0.99</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 24.26</span>
+</pre>
+<p>
+          Note that the value returned is not an integer: if you want an integer
+          result you should use either floor, round or ceil functions, or use the
+          policies mechanism. See <a class="link" href="../../pol_tutorial/understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
+          Quantiles of Discrete Distributions</a>
+        </p>
+<p>
+          The geometric distribution is related to the negative binomial    <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span>
+          <span class="identifier">p</span><span class="special">);</span></code>
+          with parameter <span class="emphasis"><em>r</em></span> = 1. So we could get the same result
+          using the negative binomial, but using the geometric the results will be
+          faster, and may be more accurate.
+        </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">nb</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.1389</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.3056</span>
+</pre>
+<p>
+          We could also the complement to express the required probability as 1 -
+          0.99 = 0.01 (and get the same result):
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"quantile(complement(g6, 1 - p))  "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">g6</span><span class="special">,</span> <span class="number">0.01</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 24.26</span>
+</pre>
+<p>
+          Note too that Boost.Math geometric distribution is implemented as a continuous
+          function. Unlike other implementations (for example R) it <span class="bold"><strong>uses</strong></span>
+          the number of failures as a <span class="bold"><strong>real</strong></span> parameter,
+          not as an integer. If you want this integer behaviour, you may need to
+          enforce this by rounding the parameter you pass, probably rounding down,
+          to the nearest integer. For example, R returns the success fraction probability
+          for all values of failures from 0 to 0.999999 thus:
+        </p>
+<pre class="programlisting">   R> formatC(pgeom(0.0001,0.5, FALSE), digits=17) "               0.5"
+</pre>
+<p>
+          So in Boost.Math the equivalent is
+        </p>
+<pre class="programlisting">    <span class="identifier">geometric</span> <span class="identifier">g05</span><span class="special">(</span><span class="number">0.5</span><span class="special">);</span>  <span class="comment">// Probability of success = 0.5 or 50%</span>
+    <span class="comment">// Output all potentially significant digits for the type, here double.</span>
+
+<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_NO_CXX11_NUMERIC_LIMITS</span>
+  <span class="keyword">int</span> <span class="identifier">max_digits10</span> <span class="special">=</span> <span class="number">2</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="special">>()</span> <span class="special">*</span> <span class="number">30103UL</span><span class="special">)</span> <span class="special">/</span> <span class="number">100000UL</
span><span class="special">;</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"BOOST_NO_CXX11_NUMERIC_LIMITS is defined"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="preprocessor">#else</span>
+  <span class="keyword">int</span> <span class="identifier">max_digits10</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">double</span><span class="special">>::</span><span class="identifier">max_digits10</span><span class="special">;</span>
+<span class="preprocessor">#endif</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Show all potentially significant decimal digits std::numeric_limits<double>::max_digits10 = "</span>
+    <span class="special"><<</span> <span class="identifier">max_digits10</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+  <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">max_digits10</span><span class="special">);</span> <span class="comment">// </span>
+
+    <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">g05</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// returns 0.5000346561579232, not exact 0.5.</span>
+</pre>
+<p>
+          To get the R discrete behaviour, you simply need to round with, for example,
+          the <code class="computeroutput"><span class="identifier">floor</span></code> function.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">g05</span><span class="special">,</span> <span class="identifier">floor</span><span class="special">(</span><span class="number">0.0001</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// returns exactly 0.5</span>
+</pre>
+<pre class="programlisting"><code class="computeroutput"><span class="special">></span> <span class="identifier">formatC</span><span class="special">(</span><span class="identifier">pgeom</span><span class="special">(</span><span class="number">0.9999999</span><span class="special">,</span><span class="number">0.5</span><span class="special">,</span> <span class="identifier">FALSE</span><span class="special">),</span> <span class="identifier">digits</span><span class="special">=</span><span class="number">17</span><span class="special">)</span> <span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="string">"              0.25"</span></code>
+<code class="computeroutput"><span class="special">></span> <span class="identifier">formatC</span><span class="special">(</span><span class="identifier">pgeom</span><span class="special">(</span><span class="number">1.999999</span><span class="special">,</span><span class="number">0.5</span><span class="special">,</span> <span class="identifier">FALSE</span><span class="special">),</span> <span class="identifier">digits</span><span class="special">=</span><span class="number">17</span><span class="special">)[</span><span class="number">1</span><span class="special">]</span> <span class="string">"              0.25"</span> <span class="identifier">k</span> <span class="special">=</span> <span class="number">1</span></code>
+<code class="computeroutput"><span class="special">></span> <span class="identifier">formatC</span><span class="special">(</span><span class="identifier">pgeom</span><span class="special">(</span><span class="number">1.9999999</span><span class="special">,</span><span class="number">0.5</span><span class="special">,</span> <span class="identifier">FALSE</span><span class="special">),</span> <span class="identifier">digits</span><span class="special">=</span><span class="number">17</span><span class="special">)[</span><span class="number">1</span><span class="special">]</span> <span class="string">"0.12500000000000003"</span> <span class="identifier">k</span> <span class="special">=</span> <span class="number">2</span></code>
+</pre>
+<p>
+          shows that R makes an arbitrary round-up decision at about 1e7 from the
+          next integer above. This may be convenient in practice, and could be replicated
+          in C++ if desired.
+        </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.geometric_eg.h1"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.geometric_eg.surveying_customers_to_find_one_"></a></span><a class="link" href="geometric_eg.html#math_toolkit.stat_tut.weg.geometric_eg.surveying_customers_to_find_one_">Surveying
+          customers to find one with a faulty product</a>
+        </h5>
+<p>
+          A company knows from warranty claims that 2% of their products will be
+          faulty, so the 'success_fraction' of finding a fault is 0.02. It wants
+          to interview a purchaser of faulty products to assess their 'user experience'.
+        </p>
+<p>
+          To estimate how many customers they will probably need to contact in order
+          to find one who has suffered from the fault, we first construct a geometric
+          distribution with probability 0.02, and then chose a confidence, say 80%,
+          95%, or 99% to finding a customer with a fault. Finally, we probably want
+          to round up the result to the integer above using the <code class="computeroutput"><span class="identifier">ceil</span></code>
+          function. (We could also use a policy, but that is hardly worthwhile for
+          this simple application.)
+        </p>
+<p>
+          (This also assumes that each customer only buys one product: if customers
+          bought more than one item, the probability of finding a customer with a
+          fault obviously improves.)
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">geometric</span> <span class="identifier">g</span><span class="special">(</span><span class="number">0.02</span><span class="special">);</span> <span class="comment">// On average, 2 in 100 products are faulty.</span>
+<span class="keyword">double</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span> <span class="comment">// 95% confidence.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">" quantile(g, "</span> <span class="special"><<</span> <span class="identifier">c</span> <span class="special"><<</span> <span class="string">") = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="identifier">c</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"To be "</span> <span class="special"><<</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+  <span class="special"><<</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+  <span class="special"><<</span>  <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="identifier">c</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" customers."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 148</span>
+<span class="identifier">c</span> <span class="special">=</span> <span class="number">0.99</span><span class="special">;</span> <span class="comment">// Very confident.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"To be "</span> <span class="special"><<</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+  <span class="special"><<</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+  <span class="special"><<</span>  <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="identifier">c</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" customers."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 227</span>
+<span class="identifier">c</span> <span class="special">=</span> <span class="number">0.80</span><span class="special">;</span> <span class="comment">// Only reasonably confident.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"To be "</span> <span class="special"><<</span> <span class="identifier">c</span> <span class="special">*</span> <span class="number">100</span>
+  <span class="special"><<</span> <span class="string">"% confident of finding we customer with a fault, need to survey "</span>
+  <span class="special"><<</span>  <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="identifier">c</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" customers."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 79</span>
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.geometric_eg.h2"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.geometric_eg.basket_ball_shooters"></a></span><a class="link" href="geometric_eg.html#math_toolkit.stat_tut.weg.geometric_eg.basket_ball_shooters">Basket
+          Ball Shooters</a>
+        </h5>
+<p>
+          According to Wikipedia, average pro basket ball players get <a href="http://en.wikipedia.org/wiki/Free_throw" target="_top">free
+          throws</a> in the baskets 70 to 80 % of the time, but some get as high
+          as 95%, and others as low as 50%. Suppose we want to compare the probabilities
+          of failing to get a score only on the first or on the fifth shot? To start
+          we will consider the average shooter, say 75%. So we construct a geometric
+          distribution with success_fraction parameter 75/100 = 0.75.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">geometric</span> <span class="identifier">gav</span><span class="special">(</span><span class="number">0.75</span><span class="special">);</span> <span class="comment">// Shooter averages 7.5 out of 10 in the basket.</span>
+</pre>
+<p>
+          What is probability of getting 1st try in the basket, that is with no failures?
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of score on 1st try = "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">gav</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.75</span>
+</pre>
+<p>
+          This is, of course, the success_fraction probability 75%. What is the probability
+          that the shooter only scores on the fifth shot? So there are 5-1 = 4 failures
+          before the first success.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">gav</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.0029</span>
+</pre>
+<p>
+          Now compare this with the poor and the best players success fraction. We
+          need to constructing new distributions with the different success fractions,
+          and then get the corresponding probability density functions values:
+        </p>
+<pre class="programlisting"><span class="identifier">geometric</span> <span class="identifier">gbest</span><span class="special">(</span><span class="number">0.95</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">gbest</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 5.9e-6</span>
+<span class="identifier">geometric</span> <span class="identifier">gmediocre</span><span class="special">(</span><span class="number">0.50</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of score on 5th try = "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">gmediocre</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.031</span>
+</pre>
+<p>
+          So we can see the very much smaller chance (0.000006) of 4 failures by
+          the best shooters, compared to the 0.03 of the mediocre.
+        </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.geometric_eg.h3"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.geometric_eg.estimating_failures"></a></span><a class="link" href="geometric_eg.html#math_toolkit.stat_tut.weg.geometric_eg.estimating_failures">Estimating
+          failures</a>
+        </h5>
+<p>
+          Of course one man's failure is an other man's success. So a fault can be
+          defined as a 'success'.
+        </p>
+<p>
+          If a fault occurs once after 100 flights, then one might naively say that
+          the risk of fault is obviously 1 in 100 = 1/100, a probability of 0.01.
+        </p>
+<p>
+          This is the best estimate we can make, but while it is the truth, it is
+          not the whole truth, for it hides the big uncertainty when estimating from
+          a single event. "One swallow doesn't make a summer." To show
+          the magnitude of the uncertainty, the geometric (or the negative binomial)
+          distribution can be used.
+        </p>
+<p>
+          If we chose the popular 95% confidence in the limits, corresponding to
+          an alpha of 0.05, because we are calculating a two-sided interval, we must
+          divide alpha by two.
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">k</span> <span class="special">=</span> <span class="number">100</span><span class="special">;</span> <span class="comment">// So frequency of occurence is 1/100.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability is failure is "</span> <span class="special"><<</span> <span class="number">1</span><span class="special">/</span><span class="identifier">k</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+  <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.00025</span>
+<span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+  <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.037</span>
+</pre>
+<p>
+          So while we estimate the probability is 0.01, it might lie between 0.0003
+          and 0.04. Even if we relax our confidence to alpha = 90%, the bounds only
+          contract to 0.0005 and 0.03. And if we require a high confidence, they
+          widen to 0.00005 to 0.05.
+        </p>
+<pre class="programlisting"><span class="identifier">alpha</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> <span class="comment">// 90% confidence.</span>
+<span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+  <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.0005</span>
+<span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+  <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.03</span>
+
+<span class="identifier">alpha</span> <span class="special">=</span> <span class="number">0.01</span><span class="special">;</span> <span class="comment">// 99% confidence.</span>
+<span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_lower_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+  <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 5e-005</span>
+<span class="identifier">t</span> <span class="special">=</span> <span class="identifier">geometric</span><span class="special">::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"geometric::find_upper_bound_on_p("</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="string">") = "</span>
+    <span class="special"><<</span> <span class="identifier">t</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.052</span>
+</pre>
+<p>
+          In real life, there will usually be more than one event (fault or success),
+          when the negative binomial, which has the neccessary extra parameter, will
+          be needed.
+        </p>
+<p>
+          As noted above, using a catch block is always a good idea, even if you
+          hope not to use it!
+        </p>
+<pre class="programlisting"><span class="special">}</span>
+<span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span>
+<span class="special">{</span> <span class="comment">// Since we have set an overflow policy of ignore_error,</span>
+  <span class="comment">// an overflow exception should never be thrown.</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nMessage from thrown exception was:\n "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          For example, without a ignore domain error policy, if we asked for
+        </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">g</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span></pre>
+<p>
+          for example, we would get an unhelpful abort, but with a catch:
+        </p>
+<pre class="programlisting">Message from thrown exception was:
+ Error in function boost::math::pdf(const exponential_distribution<double>&, double):
+ Number of failures argument is -1, but must be >= 0 !
+</pre>
+<p>
+          See full source C++ of this example at geometric_examples.cpp
+        </p>
+<p>
+          <a class="link" href="neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">See
+          negative_binomial confidence interval example.</a>
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binom_eg/binom_size_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/inverse_chi_squared_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,350 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Inverse Chi-Squared Distribution Bayes Example</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution">
+<link rel="next" href="nccs_eg.html" title="Non Central Chi Squared Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="normal_example/normal_misc.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_inverse_chi_squared_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.inverse_chi_squared_eg"></a><a class="link" href="inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example">Inverse
+        Chi-Squared Distribution Bayes Example</a>
+</h4></div></div></div>
+<p>
+          The scaled-inversed-chi-squared distribution is the conjugate prior distribution
+          for the variance (σ<sup>2</sup>) parameter of a normal distribution with known expectation
+          (μ). As such it has widespread application in Bayesian statistics:
+        </p>
+<p>
+          In <a href="http://en.wikipedia.org/wiki/Bayesian_inference" target="_top">Bayesian
+          inference</a>, the strength of belief into certain parameter values
+          is itself described through a distribution. Parameters hence become themselves
+          modelled and interpreted as random variables.
+        </p>
+<p>
+          In this worked example, we perform such a Bayesian analysis by using the
+          scaled-inverse-chi-squared distribution as prior and posterior distribution
+          for the variance parameter of a normal distribution.
+        </p>
+<p>
+          For more general information on Bayesian type of analyses, see:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+              Andrew Gelman, John B. Carlin, Hal E. Stern, Donald B. Rubin, Bayesian
+              Data Analysis, 2003, ISBN 978-1439840955.
+            </li>
+<li class="listitem">
+              Jim Albert, Bayesian Compution with R, Springer, 2009, ISBN 978-0387922973.
+            </li>
+</ul></div>
+<p>
+          (As the scaled-inversed-chi-squared is another parameterization of the
+          inverse-gamma distribution, this example could also have used the inverse-gamma
+          distribution).
+        </p>
+<p>
+          Consider precision machines which produce balls for a high-quality ball
+          bearing. Ideally each ball should have a diameter of precisely 3000 μm (3
+          mm). Assume that machines generally produce balls of that size on average
+          (mean), but individual balls can vary slightly in either direction following
+          (approximately) a normal distribution. Depending on various production
+          conditions (e.g. raw material used for balls, workplace temperature and
+          humidity, maintenance frequency and quality) some machines produce balls
+          tighter distributed around the target of 3000 μm, while others produce balls
+          with a wider distribution. Therefore the variance parameter of the normal
+          distribution of the ball sizes varies from machine to machine. An extensive
+          survey by the precision machinery manufacturer, however, has shown that
+          most machines operate with a variance between 15 and 50, and near 25 μm<sup>2</sup> on
+          average.
+        </p>
+<p>
+          Using this information, we want to model the variance of the machines.
+          The variance is strictly positive, and therefore we look for a statistical
+          distribution with support in the positive domain of the real numbers. Given
+          the expectation of the normal distribution of the balls is known (3000
+          μm), for reasons of conjugacy, it is customary practice in Bayesian statistics
+          to model the variance to be scaled-inverse-chi-squared distributed.
+        </p>
+<p>
+          In a first step, we will try to use the survey information to model the
+          general knowledge about the variance parameter of machines measured by
+          the manufacturer. This will provide us with a generic prior distribution
+          that is applicable if nothing more specific is known about a particular
+          machine.
+        </p>
+<p>
+          In a second step, we will then combine the prior-distribution information
+          in a Bayesian analysis with data on a specific single machine to derive
+          a posterior distribution for that machine.
+        </p>
+<h6>
+<a name="math_toolkit.stat_tut.weg.inverse_chi_squared_eg.h0"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.inverse_chi_squared_eg.step_one_using_the_survey_inform"></a></span><a class="link" href="inverse_chi_squared_eg.html#math_toolkit.stat_tut.weg.inverse_chi_squared_eg.step_one_using_the_survey_inform">Step
+          one: Using the survey information.</a>
+        </h6>
+<p>
+          Using the survey results, we try to find the parameter set of a scaled-inverse-chi-squared
+          distribution so that the properties of this distribution match the results.
+          Using the mathematical properties of the scaled-inverse-chi-squared distribution
+          as guideline, we see that that both the mean and mode of the scaled-inverse-chi-squared
+          distribution are approximately given by the scale parameter (s) of the
+          distribution. As the survey machines operated at a variance of 25 μm<sup>2</sup> on
+          average, we hence set the scale parameter (s<sub>prior</sub>) of our prior distribution
+          equal to this value. Using some trial-and-error and calls to the global
+          quantile function, we also find that a value of 20 for the degrees-of-freedom
+          (ν<sub>prior</sub>) parameter is adequate so that most of the prior distribution mass
+          is located between 15 and 50 (see figure below).
+        </p>
+<p>
+          We first construct our prior distribution using these values, and then
+          list out a few quantiles:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">priorDF</span> <span class="special">=</span> <span class="number">20.0</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">priorScale</span> <span class="special">=</span> <span class="number">25.0</span><span class="special">;</span>
+
+<span class="identifier">inverse_chi_squared</span> <span class="identifier">prior</span><span class="special">(</span><span class="identifier">priorDF</span><span class="special">,</span> <span class="identifier">priorScale</span><span class="special">);</span>
+<span class="comment">// Using an inverse_gamma distribution instead, we could equivalently write</span>
+<span class="comment">// inverse_gamma prior(priorDF / 2.0, priorScale * priorDF / 2.0);</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Prior distribution:"</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  2.5% quantile: "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">0.025</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  50% quantile: "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">0.5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  97.5% quantile: "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          This produces this output:
+        </p>
+<pre class="programlisting"><span class="identifier">Prior</span> <span class="identifier">distribution</span><span class="special">:</span>
+
+<span class="number">2.5</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">14.6</span>
+<span class="number">50</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">25.9</span>
+<span class="number">97.5</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">52.1</span>
+</pre>
+<p>
+          Based on this distribution, we can now calculate the probability of having
+          a machine working with an unusual work precision (variance) at <= 15
+          or > 50. For this task, we use calls to the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span></code> functions <code class="computeroutput"><span class="identifier">cdf</span></code>
+          and <code class="computeroutput"><span class="identifier">complement</span></code>, respectively,
+          and find a probability of about 0.031 (3.1%) for each case.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance <= 15: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">15.0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance <= 25: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">25.0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance > 50: "</span>
+  <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">prior</span><span class="special">,</span> <span class="number">50.0</span><span class="special">))</span>
+<span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          This produces this output:
+        </p>
+<pre class="programlisting"><span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special"><=</span> <span class="number">15</span><span class="special">:</span> <span class="number">0.031</span>
+<span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special"><=</span> <span class="number">25</span><span class="special">:</span> <span class="number">0.458</span>
+<span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special">></span> <span class="number">50</span><span class="special">:</span> <span class="number">0.0318</span>
+</pre>
+<p>
+          Therefore, only 3.1% of all precision machines produce balls with a variance
+          of 15 or less (particularly precise machines), but also only 3.2% of all
+          machines produce balls with a variance of as high as 50 or more (particularly
+          imprecise machines). Moreover, slightly more than one-half (1 - 0.458 =
+          54.2%) of the machines work at a variance greater than 25.
+        </p>
+<p>
+          Notice here the distinction between a Bayesian
+          analysis and a frequentist
+          analysis: because we model the variance as random variable itself, we can
+          calculate and straightforwardly interpret probabilities for given parameter
+          values directly, while such an approach is not possible (and interpretationally
+          a strict <span class="emphasis"><em>must-not</em></span>) in the frequentist world.
+        </p>
+<h6>
+<a name="math_toolkit.stat_tut.weg.inverse_chi_squared_eg.h1"></a>
+          <span class="phrase"><a name="math_toolkit.stat_tut.weg.inverse_chi_squared_eg.step_2_investigate_a_single_mach"></a></span><a class="link" href="inverse_chi_squared_eg.html#math_toolkit.stat_tut.weg.inverse_chi_squared_eg.step_2_investigate_a_single_mach">Step
+          2: Investigate a single machine</a>
+        </h6>
+<p>
+          In the second step, we investigate a single machine, which is suspected
+          to suffer from a major fault as the produced balls show fairly high size
+          variability. Based on the prior distribution of generic machinery performance
+          (derived above) and data on balls produced by the suspect machine, we calculate
+          the posterior distribution for that machine and use its properties for
+          guidance regarding continued machine operation or suspension.
+        </p>
+<p>
+          It can be shown that if the prior distribution was chosen to be scaled-inverse-chi-square
+          distributed, then the posterior distribution is also scaled-inverse-chi-squared-distributed
+          (prior and posterior distributions are hence conjugate). For more details
+          regarding conjugacy and formula to derive the parameters set for the posterior
+          distribution see <a href="http://en.wikipedia.org/wiki/Conjugate_prior" target="_top">Conjugate
+          prior</a>.
+        </p>
+<p>
+          Given the prior distribution parameters and sample data (of size n), the
+          posterior distribution parameters are given by the two expressions:
+        </p>
+<p>
+             ν<sub>posterior</sub> = ν<sub>prior</sub> + n
+        </p>
+<p>
+          which gives the posteriorDF below, and
+        </p>
+<p>
+             s<sub>posterior</sub> = (ν<sub>prior</sub>s<sub>prior</sub> + Σ<sup>n</sup><sub>i=1</sub>(x<sub>i</sub> - μ)<sup>2</sup>) / (ν<sub>prior</sub> + n)
+        </p>
+<p>
+          which after some rearrangement gives the formula for the posteriorScale
+          below.
+        </p>
+<p>
+          Machine-specific data consist of 100 balls which were accurately measured
+          and show the expected mean of 3000 μm and a sample variance of 55 (calculated
+          for a sample mean defined to be 3000 exactly). From these data, the prior
+          parameterization, and noting that the term Σ<sup>n</sup><sub>i=1</sub>(x<sub>i</sub> - μ)<sup>2</sup> equals the sample
+          variance multiplied by n - 1, it follows that the posterior distribution
+          of the variance parameter is scaled-inverse-chi-squared distribution with
+          degrees-of-freedom (ν<sub>posterior</sub>) = 120 and scale (s<sub>posterior</sub>) = 49.54.
+        </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">ballsSampleSize</span> <span class="special">=</span> <span class="number">100</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"balls sample size: "</span> <span class="special"><<</span> <span class="identifier">ballsSampleSize</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">ballsSampleVariance</span> <span class="special">=</span> <span class="number">55.0</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"balls sample variance: "</span> <span class="special"><<</span> <span class="identifier">ballsSampleVariance</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">posteriorDF</span> <span class="special">=</span> <span class="identifier">priorDF</span> <span class="special">+</span> <span class="identifier">ballsSampleSize</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"prior degrees-of-freedom: "</span> <span class="special"><<</span> <span class="identifier">priorDF</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"posterior degrees-of-freedom: "</span> <span class="special"><<</span> <span class="identifier">posteriorDF</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">posteriorScale</span> <span class="special">=</span>
+  <span class="special">(</span><span class="identifier">priorDF</span> <span class="special">*</span> <span class="identifier">priorScale</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">ballsSampleVariance</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">ballsSampleSize</span> <span class="special">-</span> <span class="number">1</span><span class="special">)))</span> <span class="special">/</span> <span class="identifier">posteriorDF</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"prior scale: "</span> <span class="special"><<</span> <span class="identifier">priorScale</span>  <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"posterior scale: "</span> <span class="special"><<</span> <span class="identifier">posteriorScale</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          An interesting feature here is that one needs only to know a summary statistics
+          of the sample to parameterize the posterior distribution: the 100 individual
+          ball measurements are irrelevant, just knowledge of the sample variance
+          and number of measurements is sufficient.
+        </p>
+<p>
+          That produces this output:
+        </p>
+<pre class="programlisting"><span class="identifier">balls</span> <span class="identifier">sample</span> <span class="identifier">size</span><span class="special">:</span> <span class="number">100</span>
+<span class="identifier">balls</span> <span class="identifier">sample</span> <span class="identifier">variance</span><span class="special">:</span> <span class="number">55</span>
+<span class="identifier">prior</span> <span class="identifier">degrees</span><span class="special">-</span><span class="identifier">of</span><span class="special">-</span><span class="identifier">freedom</span><span class="special">:</span> <span class="number">20</span>
+<span class="identifier">posterior</span> <span class="identifier">degrees</span><span class="special">-</span><span class="identifier">of</span><span class="special">-</span><span class="identifier">freedom</span><span class="special">:</span> <span class="number">120</span>
+<span class="identifier">prior</span> <span class="identifier">scale</span><span class="special">:</span> <span class="number">25</span>
+<span class="identifier">posterior</span> <span class="identifier">scale</span><span class="special">:</span> <span class="number">49.5</span>
+
+</pre>
+<p>
+          To compare the generic machinery performance with our suspect machine,
+          we calculate again the same quantiles and probabilities as above, and find
+          a distribution clearly shifted to greater values (see figure).
+        </p>
+<p>
+          <span class="inlinemediaobject"><img src="../../../../graphs/prior_posterior_plot.png" align="middle"></span>
+        </p>
+<pre class="programlisting"><span class="identifier">inverse_chi_squared</span> <span class="identifier">posterior</span><span class="special">(</span><span class="identifier">posteriorDF</span><span class="special">,</span> <span class="identifier">posteriorScale</span><span class="special">);</span>
+
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Posterior distribution:"</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  2.5% quantile: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">0.025</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  50% quantile: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">0.5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  97.5% quantile: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance <= 15: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">15.0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance <= 25: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">25.0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  probability variance > 50: "</span>
+   <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">posterior</span><span class="special">,</span> <span class="number">50.0</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+          This produces this output:
+        </p>
+<pre class="programlisting"><span class="identifier">Posterior</span> <span class="identifier">distribution</span><span class="special">:</span>
+
+   <span class="number">2.5</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">39.1</span>
+   <span class="number">50</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">49.8</span>
+   <span class="number">97.5</span><span class="special">%</span> <span class="identifier">quantile</span><span class="special">:</span> <span class="number">64.9</span>
+
+   <span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special"><=</span> <span class="number">15</span><span class="special">:</span> <span class="number">2.97e-031</span>
+   <span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special"><=</span> <span class="number">25</span><span class="special">:</span> <span class="number">8.85e-010</span>
+   <span class="identifier">probability</span> <span class="identifier">variance</span> <span class="special">></span> <span class="number">50</span><span class="special">:</span> <span class="number">0.489</span>
+</pre>
+<p>
+          Indeed, the probability that the machine works at a low variance (<=
+          15) is almost zero, and even the probability of working at average or better
+          performance is negligibly small (less than one-millionth of a permille).
+          On the other hand, with an almost near-half probability (49%), the machine
+          operates in the extreme high variance range of > 50 characteristic for
+          poorly performing machines.
+        </p>
+<p>
+          Based on this information the operation of the machine is taken out of
+          use and serviced.
+        </p>
+<p>
+          In summary, the Bayesian analysis allowed us to make exact probabilistic
+          statements about a parameter of interest, and hence provided us results
+          with straightforward interpretation.
+        </p>
+<p>
+          A full sample output is:
+        </p>
+<pre class="programlisting"> Inverse_chi_squared_distribution Bayes example:
+
+   Prior distribution:
+
+    2.5% quantile: 14.6
+    50% quantile: 25.9
+    97.5% quantile: 52.1
+
+    probability variance <= 15: 0.031
+    probability variance <= 25: 0.458
+    probability variance > 50: 0.0318
+
+  balls sample size: 100
+  balls sample variance: 55
+  prior degrees-of-freedom: 20
+  posterior degrees-of-freedom: 120
+  prior scale: 25
+  posterior scale: 49.5
+  Posterior distribution:
+
+    2.5% quantile: 39.1
+    50% quantile: 49.8
+    97.5% quantile: 64.9
+
+    probability variance <= 15: 2.97e-031
+    probability variance <= 25: 8.85e-010
+    probability variance > 50: 0.489
+
+</pre>
+<p>
+          (See also the reference documentation for the <a class="link" href="../../dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution">Inverse
+          chi squared Distribution</a>.)
+        </p>
+<p>
+          See the full source C++ of this example at ../../example/inverse_chi_squared_bayes_eg.cpp
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="normal_example/normal_misc.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nag_library.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nag_library.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,106 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Comparison with C, R, FORTRAN-style Free Functions</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="find_eg/find_mean_and_sd_eg.html" title="Find mean and standard deviation example">
+<link rel="next" href="c_sharp.html" title="Using the Distributions from Within C#">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="find_eg/find_mean_and_sd_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="c_sharp.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_nag_library">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.nag_library"></a><a class="link" href="nag_library.html" title="Comparison with C, R, FORTRAN-style Free Functions">Comparison with
+        C, R, FORTRAN-style Free Functions</a>
+</h4></div></div></div>
+<p>
+          You are probably familiar with a statistics library that has free functions,
+          for example the classic <a href="http://nag.com/numeric/CL/CLdescription.asp" target="_top">NAG
+          C library</a> and matching <a href="http://nag.com/numeric/FL/FLdescription.asp" target="_top">NAG
+          FORTRAN Library</a>, <a href="http://office.microsoft.com/en-us/excel/HP052090051033.aspx" target="_top">Microsoft
+          Excel BINOMDIST(number_s,trials,probability_s,cumulative)</a>, R, <a href="http://www.ptc.com/products/mathcad/mathcad14/mathcad_func_chart.htm" target="_top">MathCAD
+          pbinom</a> and many others.
+        </p>
+<p>
+          If so, you may find 'Distributions as Objects' unfamiliar, if not alien.
+        </p>
+<p>
+          However, <span class="bold"><strong>do not panic</strong></span>, both definition
+          and usage are not really very different.
+        </p>
+<p>
+          A very simple example of generating the same values as the <a href="http://nag.com/numeric/CL/CLdescription.asp" target="_top">NAG
+          C library</a> for the binomial distribution follows. (If you find slightly
+          different values, the Boost C++ version, using double or better, is very
+          likely to be the more accurate. Of course, accuracy is not usually a concern
+          for most applications of this function).
+        </p>
+<p>
+          The <a href="http://www.nag.co.uk/numeric/cl/manual/pdf/G01/g01bjc.pdf" target="_top">NAG
+          function specification</a> is
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">nag_binomial_dist</span><span class="special">(</span><span class="identifier">Integer</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">Integer</span> <span class="identifier">k</span><span class="special">,</span>
+<span class="keyword">double</span> <span class="special">*</span><span class="identifier">plek</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">peqk</span><span class="special">,</span> <span class="identifier">NagError</span> <span class="special">*</span><span class="identifier">fail</span><span class="special">)</span>
+</pre>
+<p>
+          and is called
+        </p>
+<pre class="programlisting"><span class="identifier">g01bjc</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="special">&</span><span class="identifier">plek</span><span class="special">,</span> <span class="special">&</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="special">&</span><span class="identifier">peqk</span><span class="special">,</span> <span class="identifier">NAGERR_DEFAULT</span><span class="special">);</span>
+</pre>
+<p>
+          The equivalent using this Boost C++ library is:
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>  <span class="comment">// Using declaration avoids very long names.</span>
+<span class="identifier">binomial</span> <span class="identifier">my_dist</span><span class="special">(</span><span class="number">4</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// c.f. NAG n = 4, p = 0.5</span>
+</pre>
+<p>
+          and values can be output thus:
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span>
+  <span class="special"><<</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" "</span>             <span class="comment">// Echo the NAG input n = 4 trials.</span>
+  <span class="special"><<</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" "</span>   <span class="comment">// Echo the NAG input p = 0.5</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="string">"  "</span>             <span class="comment">// NAG plek with k = 2</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="number">2</span><span class="special">))</span> <span class="special"><<</span> <span class="string">"  "</span> <span class="comment">// NAG pgtk with k = 2</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>            <span class="comment">// NAG peqk with k = 2</span>
+</pre>
+<p>
+          <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">k</span><span class="special">)</span></code> is
+          equivalent to NAG library <code class="computeroutput"><span class="identifier">plek</span></code>,
+          lower tail probability of <= k
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">k</span><span class="special">))</span></code> is
+          equivalent to NAG library <code class="computeroutput"><span class="identifier">pgtk</span></code>,
+          upper tail probability of > k
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">k</span><span class="special">)</span></code> is
+          equivalent to NAG library <code class="computeroutput"><span class="identifier">peqk</span></code>,
+          point probability of == k
+        </p>
+<p>
+          See binomial_example_nag.cpp
+          for details.
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="find_eg/find_mean_and_sd_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="c_sharp.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Non Central Chi Squared Example</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example">
+<link rel="next" href="nccs_eg/nccs_power_eg.html" title="Tables of the power function of the chi2 test.">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_chi_squared_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg/nccs_power_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_nccs_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.nccs_eg"></a><a class="link" href="nccs_eg.html" title="Non Central Chi Squared Example">Non Central Chi
+        Squared Example</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc"><dt><span class="section"><a href="nccs_eg/nccs_power_eg.html">Tables
+          of the power function of the chi<sup>2</sup> test.</a></span></dt></dl></div>
+<p>
+          (See also the reference documentation for the <a class="link" href="../../dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
+          Chi Squared Distribution</a>.)
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="inverse_chi_squared_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg/nccs_power_eg.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg/nccs_power_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/nccs_eg/nccs_power_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,1277 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tables of the power function of the chi2 test.</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../nccs_eg.html" title="Non Central Chi Squared Example">
+<link rel="prev" href="../nccs_eg.html" title="Non Central Chi Squared Example">
+<link rel="next" href="../error_eg.html" title="Error Handling Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../nccs_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../nccs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../error_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_nccs_eg_nccs_power_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.nccs_eg.nccs_power_eg"></a><a class="link" href="nccs_power_eg.html" title="Tables of the power function of the chi2 test.">Tables
+          of the power function of the chi<sup>2</sup> test.</a>
+</h5></div></div></div>
+<p>
+            This example computes a table of the power of the χ<sup>2</sup>
+test at the 5% significance
+            level, for various degrees of freedom and non-centrality parameters.
+            The table is deliberately the same as Table 6 from "The Non-Central
+            χ<sup>2</sup> and F-Distributions and their applications.", P. B. Patnaik, Biometrika,
+            Vol. 36, No. 1/2 (June 1949), 202-232.
+          </p>
+<p>
+            First we need some includes to access the non-central chi squared distribution
+            (and some basic std output of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">chi_squared</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">non_central_chi_squared</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+            Create a table of the power of the χ<sup>2</sup> test at 5% significance level, start
+            with a table header:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[table\n[[[nu]]"</span><span class="special">;</span>
+<span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">lam</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special">+=</span> <span class="number">2</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[[lambda]="</span> <span class="special"><<</span> <span class="identifier">lam</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]\n"</span><span class="special">;</span>
+</pre>
+<p>
+            (Note: the enclosing [] brackets are to format as a table in Boost.Quickbook).
+          </p>
+<p>
+            Enumerate the rows and columns and print the power of the test for each
+            table cell:
+          </p>
+<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">n</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="special">++</span><span class="identifier">n</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[["</span> <span class="special"><<</span> <span class="identifier">n</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
+   <span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">lam</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special">+=</span> <span class="number">2</span><span class="special">)</span>
+   <span class="special">{</span>
+</pre>
+<p>
+            Calculate the χ<sup>2</sup> statistic for a 5% significance:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">cs</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">chi_squared</span><span class="special">(</span><span class="identifier">n</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span>
+</pre>
+<p>
+            The power of the test is given by the complement of the CDF of the non-central
+            χ<sup>2</sup> distribution:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">beta</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">lam</span><span class="special">),</span> <span class="identifier">cs</span><span class="special">));</span>
+</pre>
+<p>
+            Then output the cell value:
+          </p>
+<pre class="programlisting">         <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"["</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">beta</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
+      <span class="special">}</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            The output from this program is a table in Boost.Quickbook format as
+            shown below.
+          </p>
+<p>
+            We can interpret this as follows - for example if ν=10 and λ=10 then the
+            power of the test is 0.542 - so we have only a 54% chance of correctly
+            detecting that our null hypothesis is false, and a 46% chance of incurring
+            a type II error (failing to reject the null hypothesis when it is in
+            fact false):
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                    <p>
+                      ν
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=2
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=4
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=6
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=8
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=10
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=12
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=14
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=16
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=18
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      λ=20
+                    </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                    <p>
+                      2
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.226
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.415
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.584
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.718
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.815
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.883
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.928
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.957
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.974
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.985
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      3
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.192
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.359
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.518
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.654
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.761
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.84
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.896
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.934
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.959
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.975
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      4
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.171
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.32
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.47
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.605
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.716
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.802
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.866
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.912
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.943
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.964
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      5
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.157
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.292
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.433
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.564
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.677
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.769
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.839
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.89
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.927
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.952
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      6
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.146
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.27
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.403
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.531
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.644
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.738
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.813
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.869
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.911
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.94
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      7
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.138
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.252
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.378
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.502
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.614
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.71
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.788
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.849
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.895
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.928
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      8
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.131
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.238
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.357
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.477
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.588
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.685
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.765
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.829
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.879
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.915
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      9
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.125
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.225
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.339
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.454
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.564
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.661
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.744
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.811
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.863
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.903
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      10
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.121
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.215
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.323
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.435
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.542
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.64
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.723
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.793
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.848
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.891
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      11
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.117
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.206
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.309
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.417
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.523
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.62
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.704
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.775
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.833
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.878
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      12
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.113
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.198
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.297
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.402
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.505
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.601
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.686
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.759
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.818
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.866
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      13
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.11
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.191
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.286
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.387
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.488
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.584
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.669
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.743
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.804
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.854
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      14
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.108
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.185
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.276
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.374
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.473
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.567
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.653
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.728
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.791
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.842
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      15
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.105
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.179
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.267
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.362
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.459
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.552
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.638
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.713
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.777
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.83
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      16
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.103
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.174
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.259
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.351
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.446
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.538
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.623
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.699
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.764
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.819
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      17
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.101
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.169
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.251
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.341
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.434
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.525
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.609
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.686
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.752
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.807
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      18
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.0992
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.165
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.244
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.332
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.423
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.512
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.596
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.673
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.74
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.796
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      19
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.0976
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.161
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.238
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.323
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.412
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.5
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.584
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.66
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.728
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.786
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      20
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.0961
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.158
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.232
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.315
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.402
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.489
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.572
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.648
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.716
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      0.775
+                    </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+            See nc_chi_sq_example.cpp
+            for the full C++ source code.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../nccs_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../nccs_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../error_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Negative Binomial Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="geometric_eg.html" title="Geometric Distribution Examples">
+<link rel="next" href="neg_binom_eg/neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="geometric_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg/neg_binom_conf.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_neg_binom_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.neg_binom_eg"></a><a class="link" href="neg_binom_eg.html" title="Negative Binomial Distribution Examples">Negative Binomial
+        Distribution Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="neg_binom_eg/neg_binom_conf.html">Calculating
+          Confidence Limits on the Frequency of Occurrence for the Negative Binomial
+          Distribution</a></span></dt>
+<dt><span class="section"><a href="neg_binom_eg/neg_binom_size_eg.html">Estimating
+          Sample Sizes for the Negative Binomial.</a></span></dt>
+<dt><span class="section"><a href="neg_binom_eg/negative_binomial_example1.html">Negative
+          Binomial Sales Quota Example.</a></span></dt>
+<dt><span class="section"><a href="neg_binom_eg/negative_binomial_example2.html">Negative
+          Binomial Table Printing Example.</a></span></dt>
+</dl></div>
+<p>
+          (See also the reference documentation for the <a class="link" href="../../dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
+          Binomial Distribution</a>.)
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="geometric_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg/neg_binom_conf.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_conf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_conf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,211 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+<link rel="prev" href="../neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+<link rel="next" href="neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../neg_binom_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_size_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_neg_binom_eg_neg_binom_conf">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.neg_binom_eg.neg_binom_conf"></a><a class="link" href="neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">Calculating
+          Confidence Limits on the Frequency of Occurrence for the Negative Binomial
+          Distribution</a>
+</h5></div></div></div>
+<p>
+            Imagine you have a process that follows a negative binomial distribution:
+            for each trial conducted, an event either occurs or does it does not,
+            referred to as "successes" and "failures". The frequency
+            with which successes occur is variously referred to as the success fraction,
+            success ratio, success percentage, occurrence frequency, or probability
+            of occurrence.
+          </p>
+<p>
+            If, by experiment, you want to measure the the best estimate of success
+            fraction is given simply by <span class="emphasis"><em>k</em></span> / <span class="emphasis"><em>N</em></span>,
+            for <span class="emphasis"><em>k</em></span> successes out of <span class="emphasis"><em>N</em></span> trials.
+          </p>
+<p>
+            However our confidence in that estimate will be shaped by how many trials
+            were conducted, and how many successes were observed. The static member
+            functions <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_lower_bound_on_p</span></code>
+            and <code class="computeroutput"><span class="identifier">negative_binomial_distribution</span><span class="special"><>::</span><span class="identifier">find_upper_bound_on_p</span></code>
+            allow you to calculate the confidence intervals for your estimate of
+            the success fraction.
+          </p>
+<p>
+            The sample program neg_binom_confidence_limits.cpp
+            illustrates their use.
+          </p>
+<p>
+            First we need some includes to access the negative binomial distribution
+            (and some basic std output of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">fixed</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">right</span><span class="special">;</span>
+</pre>
+<p>
+            First define a table of significance levels: these are the probabilities
+            that the true occurrence frequency lies outside the calculated interval:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Confidence value as % is (1 - alpha) * 100, so alpha 0.05 == 95% confidence
+            that the true occurence frequency lies <span class="bold"><strong>inside</strong></span>
+            the calculated interval.
+          </p>
+<p>
+            We need a function to calculate and print confidence limits for an observed
+            frequency of occurrence that follows a negative binomial distribution.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">trials</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// trials = Total number of trials.</span>
+   <span class="comment">// successes = Total number of observed successes.</span>
+   <span class="comment">// failures = trials - successes.</span>
+   <span class="comment">// success_fraction = successes /trials.</span>
+   <span class="comment">// Print out general info:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span>
+      <span class="string">"______________________________________________\n"</span>
+      <span class="string">"2-Sided Confidence Limits For Success Fraction\n"</span>
+      <span class="string">"______________________________________________\n\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">7</span><span class="special">);</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of trials"</span> <span class="special"><<</span> <span class="string">" =  "</span> <span class="special"><<</span> <span class="identifier">trials</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of successes"</span> <span class="special"><<</span> <span class="string">" =  "</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of failures"</span> <span class="special"><<</span> <span class="string">" =  "</span> <span class="special"><<</span> <span class="identifier">trials</span> <span class="special">-</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Observed frequency of occurrence"</span> <span class="special"><<</span> <span class="string">" =  "</span> <span class="special"><<</span> <span class="keyword">double</span><span class="special">(</span><span class="identifier">successes</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">trials</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+
+   <span class="comment">// Print table header:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n\n"</span>
+           <span class="string">"___________________________________________\n"</span>
+           <span class="string">"Confidence        Lower          Upper\n"</span>
+           <span class="string">" Value (%)        Limit          Limit\n"</span>
+           <span class="string">"___________________________________________\n"</span><span class="special">;</span>
+</pre>
+<p>
+            And now for the important part - the bounds themselves. For each value
+            of <span class="emphasis"><em>alpha</em></span>, we call <code class="computeroutput"><span class="identifier">find_lower_bound_on_p</span></code>
+            and <code class="computeroutput"><span class="identifier">find_upper_bound_on_p</span></code>
+            to obtain lower and upper bounds respectively. Note that since we are
+            calculating a two-sided interval, we must divide the value of alpha in
+            two. Had we been calculating a single-sided interval, for example: <span class="emphasis"><em>"Calculate
+            a lower bound so that we are P% sure that the true occurrence frequency
+            is greater than some value"</em></span> then we would <span class="bold"><strong>not</strong></span>
+            have divided by two.
+          </p>
+<pre class="programlisting">   <span class="comment">// Now print out the upper and lower limits for the alpha table values.</span>
+   <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="comment">// Confidence value:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+      <span class="comment">// Calculate bounds:</span>
+      <span class="keyword">double</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span><span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">);</span>
+      <span class="keyword">double</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span><span class="identifier">trials</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">);</span>
+      <span class="comment">// Print limits:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">lower</span><span class="special">;</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">5</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">upper</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// void confidence_limits_on_frequency(unsigned trials, unsigned successes)</span>
+</pre>
+<p>
+            And then call confidence_limits_on_frequency with increasing numbers
+            of trials, but always the same success fraction 0.1, or 1 in 10.
+          </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+  <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span> <span class="comment">// 20 trials, 2 successes, 2 in 20, = 1 in 10 = 0.1 success fraction.</span>
+  <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="number">200</span><span class="special">,</span> <span class="number">20</span><span class="special">);</span> <span class="comment">// More trials, but same 0.1 success fraction.</span>
+  <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="number">2000</span><span class="special">,</span> <span class="number">200</span><span class="special">);</span> <span class="comment">// Many more trials, but same 0.1 success fraction.</span>
+
+  <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<p>
+            Let's see some sample output for a 1 in 10 success ratio, first for a
+            mere 20 trials:
+          </p>
+<pre class="programlisting">______________________________________________
+2-Sided Confidence Limits For Success Fraction
+______________________________________________
+Number of trials                         =  20
+Number of successes                      =  2
+Number of failures                       =  18
+Observed frequency of occurrence         =  0.1
+___________________________________________
+Confidence        Lower          Upper
+ Value (%)        Limit          Limit
+___________________________________________
+    50.000        0.04812        0.13554
+    75.000        0.03078        0.17727
+    90.000        0.01807        0.22637
+    95.000        0.01235        0.26028
+    99.000        0.00530        0.33111
+    99.900        0.00164        0.41802
+    99.990        0.00051        0.49202
+    99.999        0.00016        0.55574
+</pre>
+<p>
+            As you can see, even at the 95% confidence level the bounds (0.012 to
+            0.26) are really very wide, and very asymmetric about the observed value
+            0.1.
+          </p>
+<p>
+            Compare that with the program output for a mass 2000 trials:
+          </p>
+<pre class="programlisting">______________________________________________
+2-Sided Confidence Limits For Success Fraction
+______________________________________________
+Number of trials                         =  2000
+Number of successes                      =  200
+Number of failures                       =  1800
+Observed frequency of occurrence         =  0.1
+___________________________________________
+Confidence        Lower          Upper
+ Value (%)        Limit          Limit
+___________________________________________
+    50.000        0.09536        0.10445
+    75.000        0.09228        0.10776
+    90.000        0.08916        0.11125
+    95.000        0.08720        0.11352
+    99.000        0.08344        0.11802
+    99.900        0.07921        0.12336
+    99.990        0.07577        0.12795
+    99.999        0.07282        0.13206
+</pre>
+<p>
+            Now even when the confidence level is very high, the limits (at 99.999%,
+            0.07 to 0.13) are really quite close and nearly symmetric to the observed
+            value of 0.1.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../neg_binom_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_size_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,197 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Estimating Sample Sizes for the Negative Binomial.</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+<link rel="prev" href="neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">
+<link rel="next" href="negative_binomial_example1.html" title="Negative Binomial Sales Quota Example.">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_conf.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example1.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_neg_binom_eg_neg_binom_size_eg">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.neg_binom_eg.neg_binom_size_eg"></a><a class="link" href="neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">Estimating
+          Sample Sizes for the Negative Binomial.</a>
+</h5></div></div></div>
+<p>
+            Imagine you have an event (let's call it a "failure" - though
+            we could equally well call it a success if we felt it was a 'good' event)
+            that you know will occur in 1 in N trials. You may want to know how many
+            trials you need to conduct to be P% sure of observing at least k such
+            failures. If the failure events follow a negative binomial distribution
+            (each trial either succeeds or fails) then the static member function
+            <code class="computeroutput"><span class="identifier">negative_binomial_distibution</span><span class="special"><>::</span><span class="identifier">find_minimum_number_of_trials</span></code>
+            can be used to estimate the minimum number of trials required to be P%
+            sure of observing the desired number of failures.
+          </p>
+<p>
+            The example program neg_binomial_sample_sizes.cpp
+            demonstrates its usage.
+          </p>
+<p>
+            It centres around a routine that prints out a table of minimum sample
+            sizes (number of trials) for various probability thresholds:
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">failures</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+<p>
+            First define a table of significance levels: these are the maximum acceptable
+            probability that <span class="emphasis"><em>failure</em></span> or fewer events will be
+            observed.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Confidence value as % is (1 - alpha) * 100, so alpha 0.05 == 95% confidence
+            that the desired number of failures will be observed. The values range
+            from a very low 0.5 or 50% confidence up to an extremely high confidence
+            of 99.999.
+          </p>
+<p>
+            Much of the rest of the program is pretty-printing, the important part
+            is in the calculation of minimum number of trials required for each value
+            of alpha using:
+          </p>
+<pre class="programlisting"><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+</pre>
+<p>
+            find_minimum_number_of_trials returns a double, so <code class="computeroutput"><span class="identifier">ceil</span></code>
+            rounds this up to ensure we have an integral minimum number of trials.
+          </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">failures</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">// trials = number of trials</span>
+   <span class="comment">// failures = number of failures before achieving required success(es).</span>
+   <span class="comment">// p        = success fraction (0 <= p <= 1.).</span>
+   <span class="comment">//</span>
+   <span class="comment">// Calculate how many trials we need to ensure the</span>
+   <span class="comment">// required number of failures DOES exceed "failures".</span>
+
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="string">"Target number of failures = "</span> <span class="special"><<</span> <span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">failures</span><span class="special">;</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">",   Success fraction = "</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">"%"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="comment">// Print table header:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"____________________________\n"</span>
+           <span class="string">"Confidence        Min Number\n"</span>
+           <span class="string">" Value (%)        Of Trials \n"</span>
+           <span class="string">"____________________________\n"</span><span class="special">;</span>
+   <span class="comment">// Now print out the data for the alpha table values.</span>
+  <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+   <span class="special">{</span> <span class="comment">// Confidence values %:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">])</span> <span class="special"><<</span> <span class="string">"      "</span>
+      <span class="comment">// find_minimum_number_of_trials</span>
+      <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span>
+      <span class="special"><<</span> <span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span>
+      <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// void find_number_of_trials(double failures, double p)</span>
+</pre>
+<p>
+            finally we can produce some tables of minimum trials for the chosen confidence
+            levels:
+          </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">500</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+    <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">);</span>
+
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span> <span class="comment">// int main()</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+              Since we're calculating the <span class="emphasis"><em>minimum</em></span> number of
+              trials required, we'll err on the safe side and take the ceiling of
+              the result. Had we been calculating the <span class="emphasis"><em>maximum</em></span>
+              number of trials permitted to observe less than a certain number of
+              <span class="emphasis"><em>failures</em></span> then we would have taken the floor instead.
+              We would also have called <code class="computeroutput"><span class="identifier">find_minimum_number_of_trials</span></code>
+              like this:
+            </p>
+<pre class="programlisting"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span>
+</pre>
+<p>
+              which would give us the largest number of trials we could conduct and
+              still be P% sure of observing <span class="emphasis"><em>failures or less</em></span>
+              failure events, when the probability of success is <span class="emphasis"><em>p</em></span>.
+            </p>
+</td></tr>
+</table></div>
+<p>
+            We'll finish off by looking at some sample output, firstly suppose we
+            wish to observe at least 5 "failures" with a 50/50 (0.5) chance
+            of success or failure:
+          </p>
+<pre class="programlisting">Target number of failures = 5,   Success fraction = 50%
+
+____________________________
+Confidence        Min Number
+ Value (%)        Of Trials
+____________________________
+    50.000          11
+    75.000          14
+    90.000          17
+    95.000          18
+    99.000          22
+    99.900          27
+    99.990          31
+    99.999          36
+
+</pre>
+<p>
+            So 18 trials or more would yield a 95% chance that at least our 5 required
+            failures would be observed.
+          </p>
+<p>
+            Compare that to what happens if the success ratio is 90%:
+          </p>
+<pre class="programlisting">Target number of failures = 5.000,   Success fraction = 90.000%
+
+____________________________
+Confidence        Min Number
+ Value (%)        Of Trials
+____________________________
+    50.000          57
+    75.000          73
+    90.000          91
+    95.000         103
+    99.000         127
+    99.900         159
+    99.990         189
+    99.999         217
+</pre>
+<p>
+            So now 103 trials are required to observe at least 5 failures with 95%
+            certainty.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_conf.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example1.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,497 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Negative Binomial Sales Quota Example.</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+<link rel="prev" href="neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">
+<link rel="next" href="negative_binomial_example2.html" title="Negative Binomial Table Printing Example.">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_size_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example2.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_neg_binom_eg_negative_binomial_example1">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.neg_binom_eg.negative_binomial_example1"></a><a class="link" href="negative_binomial_example1.html" title="Negative Binomial Sales Quota Example.">Negative
+          Binomial Sales Quota Example.</a>
+</h5></div></div></div>
+<p>
+            This example program <a href="../../../../../../example/negative_binomial_example1.cpp" target="_top">negative_binomial_example1.cpp
+            (full source code)</a> demonstrates a simple use to find the probability
+            of meeting a sales quota.
+          </p>
+<p>
+            Based on <a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution" target="_top">a
+            problem by Dr. Diane Evans, Professor of Mathematics at Rose-Hulman Institute
+            of Technology</a>.
+          </p>
+<p>
+            Pat is required to sell candy bars to raise money for the 6th grade field
+            trip. There are thirty houses in the neighborhood, and Pat is not supposed
+            to return home until five candy bars have been sold. So the child goes
+            door to door, selling candy bars. At each house, there is a 0.4 probability
+            (40%) of selling one candy bar and a 0.6 probability (60%) of selling
+            nothing.
+          </p>
+<p>
+            What is the probability mass (density) function (pdf) for selling the
+            last (fifth) candy bar at the nth house?
+          </p>
+<p>
+            The Negative Binomial(r, p) distribution describes the probability of
+            k failures and r successes in k+r Bernoulli(p) trials with success on
+            the last trial. (A <a href="http://en.wikipedia.org/wiki/Bernoulli_distribution" target="_top">Bernoulli
+            trial</a> is one with only two possible outcomes, success of failure,
+            and p is the probability of success). See also <a href="http://en.wikipedia.org/wiki/Bernoulli_distribution" target="_top">Bernoulli
+            distribution</a> and <a href="http://www.math.uah.edu/stat/bernoulli/Introduction.xhtml" target="_top">Bernoulli
+            applications</a>.
+          </p>
+<p>
+            In this example, we will deliberately produce a variety of calculations
+            and outputs to demonstrate the ways that the negative binomial distribution
+            can be implemented with this library: it is also deliberately over-commented.
+          </p>
+<p>
+            First we need to #define macros to control the error and discrete handling
+            policies. For this simple example, we want to avoid throwing an exception
+            (the default policy) and just return infinity. We want to treat the distribution
+            as if it was continuous, so we choose a discrete_quantile policy of real,
+            rather than the default policy integer_round_outwards.
+          </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
+</pre>
+<p>
+            After that we need some includes to provide easy access to the negative
+            binomial distribution,
+          </p>
+<div class="caution"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../images/caution.png"></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              It is vital to #include distributions etc <span class="bold"><strong>after</strong></span>
+              the above #defines
+            </p></td></tr>
+</table></div>
+<p>
+            and we need some std library iostream, of course.
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+  <span class="comment">// for negative_binomial_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">pdf</span><span class="special">;</span> <span class="comment">// Probability mass function.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cdf</span><span class="special">;</span> <span class="comment">// Cumulative density function.</span>
+  <span class="keyword">using</span>  <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quantile</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">noshowpoint</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">fixed</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">right</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+</pre>
+<p>
+            It is always sensible to use try and catch blocks because defaults policies
+            are to throw an exception if anything goes wrong.
+          </p>
+<p>
+            A simple catch block (see below) will ensure that you get a helpful error
+            message instead of an abrupt program abort.
+          </p>
+<pre class="programlisting"><span class="keyword">try</span>
+<span class="special">{</span>
+</pre>
+<p>
+            Selling five candy bars means getting five successes, so successes r
+            = 5. The total number of trials (n, in this case, houses visited) this
+            takes is therefore = sucesses + failures or k + r = k + 5.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">sales_quota</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> <span class="comment">// Pat's sales quota - successes (r).</span>
+</pre>
+<p>
+            At each house, there is a 0.4 probability (40%) of selling one candy
+            bar and a 0.6 probability (60%) of selling nothing.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.4</span><span class="special">;</span> <span class="comment">// success_fraction (p) - so failure_fraction is 0.6.</span>
+</pre>
+<p>
+            The Negative Binomial(r, p) distribution describes the probability of
+            k failures and r successes in k+r Bernoulli(p) trials with success on
+            the last trial. (A <a href="http://en.wikipedia.org/wiki/Bernoulli_distribution" target="_top">Bernoulli
+            trial</a> is one with only two possible outcomes, success of failure,
+            and p is the probability of success).
+          </p>
+<p>
+            We therefore start by constructing a negative binomial distribution with
+            parameters sales_quota (required successes) and probability of success.
+          </p>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">nb</span><span class="special">(</span><span class="identifier">sales_quota</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span> <span class="comment">// type double by default.</span>
+</pre>
+<p>
+            To confirm, display the success_fraction & successes parameters of
+            the distribution.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Pat has a sales per house success rate of "</span> <span class="special"><<</span> <span class="identifier">success_fraction</span>
+  <span class="special"><<</span> <span class="string">".\nTherefore he would, on average, sell "</span> <span class="special"><<</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">*</span> <span class="number">100</span>
+  <span class="special"><<</span> <span class="string">" bars after trying 100 houses."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">all_houses</span> <span class="special">=</span> <span class="number">30</span><span class="special">;</span> <span class="comment">// The number of houses on the estate.</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"With a success rate of "</span> <span class="special"><<</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", he might expect, on average,\n"</span>
+    <span class="string">"to need to visit about "</span> <span class="special"><<</span> <span class="identifier">success_fraction</span> <span class="special">*</span> <span class="identifier">all_houses</span>
+    <span class="special"><<</span> <span class="string">" houses in order to sell all "</span> <span class="special"><<</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">successes</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" bars. "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Pat has a sales per house success rate of 0.4.
+Therefore he would, on average, sell 40 bars after trying 100 houses.
+With a success rate of 0.4, he might expect, on average,
+to need to visit about 12 houses in order to sell all 5 bars.
+</pre>
+<p>
+            The random variable of interest is the number of houses that must be
+            visited to sell five candy bars, so we substitute k = n - 5 into a negative_binomial(5,
+            0.4) and obtain the <a class="link" href="../../../dist_ref/nmp.html#math_toolkit.dist_ref.nmp.pdf">probability
+            mass (density) function (pdf or pmf)</a> of the distribution of houses
+            visited. Obviously, the best possible case is that Pat makes sales on
+            all the first five houses.
+          </p>
+<p>
+            We calculate this using the pdf function:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">5</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// == pdf(nb, 0)</span>
+</pre>
+<p>
+            Of course, he could not finish on fewer than 5 houses because he must
+            sell 5 candy bars. So the 5th house is the first that he could possibly
+            finish on.
+          </p>
+<p>
+            To finish on or before the 8th house, Pat must finish at the 5th, 6th,
+            7th or 8th house. The probability that he will finish on <span class="bold"><strong>exactly</strong></span>
+            ( == ) on any house is the Probability Density Function (pdf).
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on the 6th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">6</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on the 7th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">7</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on the 8th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability that Pat finishes on the 6th house is 0.03072
+Probability that Pat finishes on the 7th house is 0.055296
+Probability that Pat finishes on the 8th house is 0.077414
+</pre>
+<p>
+            The sum of the probabilities for these houses is the Cumulative Distribution
+            Function (cdf). We can calculate it by adding the individual probabilities.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on or before the 8th house is sum "</span>
+  <span class="string">"\n"</span> <span class="special"><<</span> <span class="string">"pdf(sales_quota) + pdf(6) + pdf(7) + pdf(8) = "</span>
+  <span class="comment">// Sum each of the mass/density probabilities for houses sales_quota = 5, 6, 7, & 8.</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">5</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="comment">// 0 failures.</span>
+    <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">6</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="comment">// 1 failure.</span>
+    <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">7</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="comment">// 2 failures.</span>
+    <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="comment">// 3 failures.</span>
+  <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">pdf(sales_quota) + pdf(6) + pdf(7) + pdf(8) = 0.17367
+</pre>
+<p>
+            Or, usually better, by using the negative binomial <span class="bold"><strong>cumulative</strong></span>
+            distribution function.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\non or before the "</span> <span class="special"><<</span> <span class="number">8</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of selling his quota of 5 bars on or before the 8th house is 0.17367
+</pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability that Pat finishes exactly on the 10th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">10</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\non or before the "</span> <span class="special"><<</span> <span class="number">10</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">10</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability that Pat finishes exactly on the 10th house is 0.10033
+Probability of selling his quota of 5 bars on or before the 10th house is 0.3669
+</pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes exactly on the 11th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">11</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\non or before the "</span> <span class="special"><<</span> <span class="number">11</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">11</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability that Pat finishes on the 11th house is 0.10033
+Probability of selling his quota of 5 candy bars
+on or before the 11th house is 0.46723
+</pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes exactly on the 12th house is "</span>
+  <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">12</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\non or before the "</span> <span class="special"><<</span> <span class="number">12</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">12</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability that Pat finishes on the 12th house is 0.094596
+Probability of selling his quota of 5 candy bars
+on or before the 12th house is 0.56182
+</pre>
+<p>
+            Finally consider the risk of Pat not selling his quota of 5 bars even
+            after visiting all the houses. Calculate the probability that he <span class="emphasis"><em>will</em></span>
+            sell on or before the last house: Calculate the probability that he would
+            sell all his quota on the very last house.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special"><<</span> <span class="identifier">all_houses</span>
+  <span class="special"><<</span> <span class="string">" house is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Probability of selling his quota of 5 bars on the 30th house is
+          </p>
+<pre class="programlisting">Probability that Pat finishes on the 30 house is 0.00069145
+</pre>
+<p>
+            when he'd be very unlucky indeed!
+          </p>
+<p>
+            What is the probability that Pat exhausts all 30 houses in the neighborhood,
+            and <span class="bold"><strong>still</strong></span> doesn't sell the required
+            5 candy bars?
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\non or before the "</span> <span class="special"><<</span> <span class="identifier">all_houses</span> <span class="special"><<</span> <span class="string">"th house is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of selling his quota of 5 bars
+on or before the 30th house is 0.99849
+</pre>
+<p>
+            /*<code class="computeroutput"><span class="identifier">So</span> <span class="identifier">the</span>
+            <span class="identifier">risk</span> <span class="identifier">of</span>
+            <span class="identifier">failing</span> <span class="identifier">even</span>
+            <span class="identifier">after</span> <span class="identifier">visiting</span>
+            <span class="identifier">all</span> <span class="identifier">the</span>
+            <span class="identifier">houses</span> <span class="identifier">is</span>
+            <span class="number">1</span> <span class="special">-</span> <span class="keyword">this</span> <span class="identifier">probability</span><span class="special">,</span> </code><code class="computeroutput"><span class="number">1</span>
+            <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span>
+            <span class="special">-</span> <span class="identifier">sales_quota</span></code><code class="computeroutput">
+            <span class="identifier">But</span> <span class="keyword">using</span>
+            <span class="keyword">this</span> <span class="identifier">expression</span>
+            <span class="identifier">may</span> <span class="identifier">cause</span>
+            <span class="identifier">serious</span> <span class="identifier">inaccuracy</span><span class="special">,</span> <span class="identifier">so</span> <span class="identifier">it</span> <span class="identifier">would</span>
+            <span class="identifier">be</span> <span class="identifier">much</span>
+            <span class="identifier">better</span> <span class="identifier">to</span>
+            <span class="identifier">use</span> <span class="identifier">the</span>
+            <span class="identifier">complement</span> <span class="identifier">of</span>
+            <span class="identifier">the</span> <span class="identifier">cdf</span><span class="special">:</span> <span class="identifier">So</span> <span class="identifier">the</span> <span class="identifier">risk</span>
+            <span class="identifier">of</span> <span class="identifier">failing</span>
+            <span class="identifier">even</span> <span class="identifier">at</span><span class="special">,</span> <span class="keyword">or</span> <span class="identifier">after</span><span class="special">,</span> <span class="identifier">the</span> <span class="number">31</span><span class="identifier">th</span> <span class="special">(</span><span class="identifier">non</span><span class="special">-</span><span class="identifier">existent</span><span class="special">)</span>
+            <span class="identifier">houses</span> <span class="identifier">is</span>
+            <span class="number">1</span> <span class="special">-</span> <span class="keyword">this</span> <span class="identifier">probability</span><span class="special">,</span> </code><code class="computeroutput"><span class="number">1</span>
+            <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span>
+            <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span></code>` But using this expression may cause
+            serious inaccuracy. So it would be much better to use the complement
+            of the cdf. <a class="link" href="../../overview/complements.html#why_complements">Why complements?</a>
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nProbability of failing to sell his quota of "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span>
+  <span class="special"><<</span> <span class="string">" bars\neven after visiting all "</span> <span class="special"><<</span> <span class="identifier">all_houses</span> <span class="special"><<</span> <span class="string">" houses is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of failing to sell his quota of 5 bars
+even after visiting all 30 houses is 0.0015101
+</pre>
+<p>
+            We can also use the quantile (percentile), the inverse of the cdf, to
+            predict which house Pat will finish on. So for the 8th house:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">(</span><span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">));</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of meeting sales quota on or before 8th house is "</span><span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">Probability of meeting sales quota on or before 8th house is 0.174
+</pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special"><<</span> <span class="identifier">p</span>
+    <span class="special"><<</span> <span class="string">", then the finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span><span class="special"><<</span> <span class="string">" quantile(nb, p) = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">If the confidence of meeting sales quota is 0.17367, then the finishing house is 8
+</pre>
+<p>
+            Demanding absolute certainty that all 5 will be sold, implies an infinite
+            number of trials. (Of course, there are only 30 houses on the estate,
+            so he can't ever be <span class="bold"><strong>certain</strong></span> of selling
+            his quota).
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special"><<</span> <span class="number">1.</span>
+    <span class="special"><<</span> <span class="string">", then the finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//  1.#INF == infinity.</span>
+</pre>
+<pre class="programlisting">If the confidence of meeting sales quota is 1, then the finishing house is 1.#INF
+</pre>
+<p>
+            And similarly for a few other probabilities:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special"><<</span> <span class="number">0.</span>
+    <span class="special"><<</span> <span class="string">", then the finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">0.</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special"><<</span> <span class="number">0.5</span>
+    <span class="special"><<</span> <span class="string">", then the finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">0.5</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special"><<</span> <span class="number">1</span> <span class="special">-</span> <span class="number">0.00151</span> <span class="comment">// 30 th</span>
+    <span class="special"><<</span> <span class="string">", then the finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span> <span class="number">0.00151</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">If the confidence of meeting sales quota is 0, then the finishing house is 5
+If the confidence of meeting sales quota is 0.5, then the finishing house is 11.337
+If the confidence of meeting sales quota is 0.99849, then the finishing house is 30
+</pre>
+<p>
+            Notice that because we chose a discrete quantile policy of real, the
+            result can be an 'unreal' fractional house.
+          </p>
+<p>
+            If the opposite is true, we don't want to assume any confidence, then
+            this is tantamount to assuming that all the first sales_quota trials
+            will be successful sales.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If confidence of meeting quota is zero\n(we assume all houses are successful sales)"</span>
+  <span class="string">", then finishing house is "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">If confidence of meeting quota is zero (we assume all houses are successful sales), then finishing house is 5
+If confidence of meeting quota is 0, then finishing house is 5
+</pre>
+<p>
+            We can list quantiles for a few probabilities:
+          </p>
+<pre class="programlisting"> <span class="keyword">double</span> <span class="identifier">ps</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">,</span> <span class="number">0.95</span><span class="special">,</span> <span class="number">0.99</span><span class="special">,</span> <span class="number">0.999</span><span class="special">,</span> <span class="number">1.</span><span class="special">};</span>
+ <span class="comment">// Confidence as fraction = 1-alpha, as percent =  100 * (1-alpha[i]) %</span>
+ <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+ <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">ps</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">ps</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="identifier">i</span><span class="special">++)</span>
+ <span class="special">{</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If confidence of meeting quota is "</span> <span class="special"><<</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span>
+     <span class="special"><<</span> <span class="string">", then finishing house is "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">])</span> <span class="special">+</span> <span class="identifier">sales_quota</span>
+     <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<pre class="programlisting">If confidence of meeting quota is 0, then finishing house is 5
+If confidence of meeting quota is 0.001, then finishing house is 5
+If confidence of meeting quota is 0.01, then finishing house is 5
+If confidence of meeting quota is 0.05, then finishing house is 6.2
+If confidence of meeting quota is 0.1, then finishing house is 7.06
+If confidence of meeting quota is 0.5, then finishing house is 11.3
+If confidence of meeting quota is 0.9, then finishing house is 17.8
+If confidence of meeting quota is 0.95, then finishing house is 20.1
+If confidence of meeting quota is 0.99, then finishing house is 24.8
+If confidence of meeting quota is 0.999, then finishing house is 31.1
+If confidence of meeting quota is 1, then finishing house is 1.#INF
+</pre>
+<p>
+            We could have applied a ceil function to obtain a 'worst case' integer
+            value for house.
+          </p>
+<pre class="programlisting"><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span></pre>
+<p>
+            Or, if we had used the default discrete quantile policy, integer_outside,
+            by omitting
+          </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span></pre>
+<p>
+            we would have achieved the same effect.
+          </p>
+<p>
+            The real result gives some suggestion which house is most likely. For
+            example, compare the real and integer_outside for 95% confidence.
+          </p>
+<pre class="programlisting">If confidence of meeting quota is 0.95, then finishing house is 20.1
+If confidence of meeting quota is 0.95, then finishing house is 21
+</pre>
+<p>
+            The real value 20.1 is much closer to 20 than 21, so integer_outside
+            is pessimistic. We could also use integer_round_nearest policy to suggest
+            that 20 is more likely.
+          </p>
+<p>
+            Finally, we can tabulate the probability for the last sale being exactly
+            on each house.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nHouse for "</span> <span class="special"><<</span> <span class="identifier">sales_quota</span> <span class="special"><<</span> <span class="string">"th (last) sale.  Probability (%)"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">sales_quota</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="identifier">all_houses</span><span class="special">+</span><span class="number">1</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="string">"                             "</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">8</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">i</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span>  <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</spa
n>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting">House for 5 th (last) sale.  Probability (%)
+5                               0.01024
+6                               0.04096
+7                               0.096256
+8                               0.17367
+9                               0.26657
+10                              0.3669
+11                              0.46723
+12                              0.56182
+13                              0.64696
+14                              0.72074
+15                              0.78272
+16                              0.83343
+17                              0.874
+18                              0.90583
+19                              0.93039
+20                              0.94905
+21                              0.96304
+22                              0.97342
+23                              0.98103
+24                              0.98655
+25                              0.99053
+26                              0.99337
+27                              0.99539
+28                              0.99681
+29                              0.9978
+30                              0.99849
+</pre>
+<p>
+            As noted above, using a catch block is always a good idea, even if you
+            do not expect to use it.
+          </p>
+<pre class="programlisting"><span class="special">}</span>
+<span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span>
+<span class="special">{</span> <span class="comment">// Since we have set an overflow policy of ignore_error,</span>
+  <span class="comment">// an overflow exception should never be thrown.</span>
+   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\nMessage from thrown exception was:\n "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            For example, without a ignore domain error policy, if we asked for
+          </p>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span></pre>
+<p>
+            for example, we would get:
+          </p>
+<pre class="programlisting">Message from thrown exception was:
+ Error in function boost::math::pdf(const negative_binomial_distribution<double>&, double):
+ Number of failures argument is -1, but must be >= 0 !
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_size_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example2.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,126 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Negative Binomial Table Printing Example.</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../neg_binom_eg.html" title="Negative Binomial Distribution Examples">
+<link rel="prev" href="negative_binomial_example1.html" title="Negative Binomial Sales Quota Example.">
+<link rel="next" href="../normal_example.html" title="Normal Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="negative_binomial_example1.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../normal_example.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_neg_binom_eg_negative_binomial_example2">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.neg_binom_eg.negative_binomial_example2"></a><a class="link" href="negative_binomial_example2.html" title="Negative Binomial Table Printing Example.">Negative
+          Binomial Table Printing Example.</a>
+</h5></div></div></div>
+<p>
+            Example program showing output of a table of values of cdf and pdf for
+            various k failures.
+          </p>
+<pre class="programlisting"><span class="comment">// Print a table of values that can be used to plot</span>
+<span class="comment">// using Excel, or some other superior graphical display tool.</span>
+
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">17</span><span class="special">);</span> <span class="comment">// Use max_digits10 precision, the maximum available for a reference table.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">showpoint</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// include trailing zeros.</span>
+<span class="comment">// This is a maximum possible precision for the type (here double) to suit a reference table.</span>
+<span class="keyword">int</span> <span class="identifier">maxk</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="number">2.</span> <span class="special">*</span> <span class="identifier">mynbdist</span><span class="special">.</span><span class="identifier">successes</span><span class="special">()</span> <span class="special">/</span>  <span class="identifier">mynbdist</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">());</span>
+<span class="comment">// This maxk shows most of the range of interest, probability about 0.0001 to 0.999.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="string">" k            pdf                      cdf"</span><span class="string">"\n"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">k</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">k</span> <span class="special"><</span> <span class="identifier">maxk</span><span class="special">;</span> <span class="identifier">k</span><span class="special">++)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">17</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">showpoint</span>
+    <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">k</span>  <span class="special"><<</span> <span class="string">", "</span>
+    <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">mynbdist</span><span class="special">,</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="identifier">k</span><span class="special">))</span>
+    <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">25</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">mynbdist</span><span class="special">,</span> <span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="identifier">k</span><span class="special">))</span>
+    <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<pre class="programlisting"><span class="identifier">k</span>            <span class="identifier">pdf</span>                      <span class="identifier">cdf</span>
+ <span class="number">0</span><span class="special">,</span> <span class="number">1.5258789062500000e-005</span>  <span class="number">1.5258789062500003e-005</span>
+ <span class="number">1</span><span class="special">,</span> <span class="number">9.1552734375000000e-005</span>  <span class="number">0.00010681152343750000</span>
+ <span class="number">2</span><span class="special">,</span> <span class="number">0.00030899047851562522</span>   <span class="number">0.00041580200195312500</span>
+ <span class="number">3</span><span class="special">,</span> <span class="number">0.00077247619628906272</span>   <span class="number">0.0011882781982421875</span>
+ <span class="number">4</span><span class="special">,</span> <span class="number">0.0015932321548461918</span>    <span class="number">0.0027815103530883789</span>
+ <span class="number">5</span><span class="special">,</span> <span class="number">0.0028678178787231476</span>    <span class="number">0.0056493282318115234</span>
+ <span class="number">6</span><span class="special">,</span> <span class="number">0.0046602040529251142</span>    <span class="number">0.010309532284736633</span>
+ <span class="number">7</span><span class="special">,</span> <span class="number">0.0069903060793876605</span>    <span class="number">0.017299838364124298</span>
+ <span class="number">8</span><span class="special">,</span> <span class="number">0.0098301179241389001</span>    <span class="number">0.027129956288263202</span>
+ <span class="number">9</span><span class="special">,</span> <span class="number">0.013106823898851871</span>     <span class="number">0.040236780187115073</span>
+<span class="number">10</span><span class="special">,</span> <span class="number">0.016711200471036140</span>     <span class="number">0.056947980658151209</span>
+<span class="number">11</span><span class="special">,</span> <span class="number">0.020509200578089786</span>     <span class="number">0.077457181236241013</span>
+<span class="number">12</span><span class="special">,</span> <span class="number">0.024354675686481652</span>     <span class="number">0.10181185692272265</span>
+<span class="number">13</span><span class="special">,</span> <span class="number">0.028101548869017230</span>     <span class="number">0.12991340579173993</span>
+<span class="number">14</span><span class="special">,</span> <span class="number">0.031614242477644432</span>     <span class="number">0.16152764826938440</span>
+<span class="number">15</span><span class="special">,</span> <span class="number">0.034775666725408917</span>     <span class="number">0.19630331499479325</span>
+<span class="number">16</span><span class="special">,</span> <span class="number">0.037492515688331451</span>     <span class="number">0.23379583068312471</span>
+<span class="number">17</span><span class="special">,</span> <span class="number">0.039697957787645101</span>     <span class="number">0.27349378847076977</span>
+<span class="number">18</span><span class="special">,</span> <span class="number">0.041352039362130305</span>     <span class="number">0.31484582783290005</span>
+<span class="number">19</span><span class="special">,</span> <span class="number">0.042440250924291580</span>     <span class="number">0.35728607875719176</span>
+<span class="number">20</span><span class="special">,</span> <span class="number">0.042970754060845245</span>     <span class="number">0.40025683281803687</span>
+<span class="number">21</span><span class="special">,</span> <span class="number">0.042970754060845225</span>     <span class="number">0.44322758687888220</span>
+<span class="number">22</span><span class="special">,</span> <span class="number">0.042482450037426581</span>     <span class="number">0.48571003691630876</span>
+<span class="number">23</span><span class="special">,</span> <span class="number">0.041558918514873783</span>     <span class="number">0.52726895543118257</span>
+<span class="number">24</span><span class="special">,</span> <span class="number">0.040260202311284021</span>     <span class="number">0.56752915774246648</span>
+<span class="number">25</span><span class="special">,</span> <span class="number">0.038649794218832620</span>     <span class="number">0.60617895196129912</span>
+<span class="number">26</span><span class="special">,</span> <span class="number">0.036791631035234917</span>     <span class="number">0.64297058299653398</span>
+<span class="number">27</span><span class="special">,</span> <span class="number">0.034747651533277427</span>     <span class="number">0.67771823452981139</span>
+<span class="number">28</span><span class="special">,</span> <span class="number">0.032575923312447595</span>     <span class="number">0.71029415784225891</span>
+<span class="number">29</span><span class="special">,</span> <span class="number">0.030329307911589130</span>     <span class="number">0.74062346575384819</span>
+<span class="number">30</span><span class="special">,</span> <span class="number">0.028054609818219924</span>     <span class="number">0.76867807557206813</span>
+<span class="number">31</span><span class="special">,</span> <span class="number">0.025792141284492545</span>     <span class="number">0.79447021685656061</span>
+<span class="number">32</span><span class="special">,</span> <span class="number">0.023575629142856460</span>     <span class="number">0.81804584599941710</span>
+<span class="number">33</span><span class="special">,</span> <span class="number">0.021432390129869489</span>     <span class="number">0.83947823612928651</span>
+<span class="number">34</span><span class="special">,</span> <span class="number">0.019383705779220189</span>     <span class="number">0.85886194190850684</span>
+<span class="number">35</span><span class="special">,</span> <span class="number">0.017445335201298231</span>     <span class="number">0.87630727710980494</span>
+<span class="number">36</span><span class="special">,</span> <span class="number">0.015628112784496322</span>     <span class="number">0.89193538989430121</span>
+<span class="number">37</span><span class="special">,</span> <span class="number">0.013938587078064250</span>     <span class="number">0.90587397697236549</span>
+<span class="number">38</span><span class="special">,</span> <span class="number">0.012379666154859701</span>     <span class="number">0.91825364312722524</span>
+<span class="number">39</span><span class="special">,</span> <span class="number">0.010951243136991251</span>     <span class="number">0.92920488626421649</span>
+<span class="number">40</span><span class="special">,</span> <span class="number">0.0096507830144735539</span>    <span class="number">0.93885566927869002</span>
+<span class="number">41</span><span class="special">,</span> <span class="number">0.0084738582566109364</span>    <span class="number">0.94732952753530097</span>
+<span class="number">42</span><span class="special">,</span> <span class="number">0.0074146259745345548</span>    <span class="number">0.95474415350983555</span>
+<span class="number">43</span><span class="special">,</span> <span class="number">0.0064662435824429246</span>    <span class="number">0.96121039709227851</span>
+<span class="number">44</span><span class="special">,</span> <span class="number">0.0056212231142827853</span>    <span class="number">0.96683162020656122</span>
+<span class="number">45</span><span class="special">,</span> <span class="number">0.0048717266990450708</span>    <span class="number">0.97170334690560634</span>
+<span class="number">46</span><span class="special">,</span> <span class="number">0.0042098073105878630</span>    <span class="number">0.97591315421619418</span>
+<span class="number">47</span><span class="special">,</span> <span class="number">0.0036275999165703964</span>    <span class="number">0.97954075413276465</span>
+<span class="number">48</span><span class="special">,</span> <span class="number">0.0031174686783026818</span>    <span class="number">0.98265822281106729</span>
+<span class="number">49</span><span class="special">,</span> <span class="number">0.0026721160099737302</span>    <span class="number">0.98533033882104104</span>
+<span class="number">50</span><span class="special">,</span> <span class="number">0.0022846591885275322</span>    <span class="number">0.98761499800956853</span>
+<span class="number">51</span><span class="special">,</span> <span class="number">0.0019486798960970148</span>    <span class="number">0.98956367790566557</span>
+<span class="number">52</span><span class="special">,</span> <span class="number">0.0016582516423517923</span>    <span class="number">0.99122192954801736</span>
+<span class="number">53</span><span class="special">,</span> <span class="number">0.0014079495076571762</span>    <span class="number">0.99262987905567457</span>
+<span class="number">54</span><span class="special">,</span> <span class="number">0.0011928461106539983</span>    <span class="number">0.99382272516632852</span>
+<span class="number">55</span><span class="special">,</span> <span class="number">0.0010084971662802015</span>    <span class="number">0.99483122233260868</span>
+<span class="number">56</span><span class="special">,</span> <span class="number">0.00085091948404891532</span>   <span class="number">0.99568214181665760</span>
+<span class="number">57</span><span class="special">,</span> <span class="number">0.00071656377604119542</span>   <span class="number">0.99639870559269883</span>
+<span class="number">58</span><span class="special">,</span> <span class="number">0.00060228420831048650</span>   <span class="number">0.99700098980100937</span>
+<span class="number">59</span><span class="special">,</span> <span class="number">0.00050530624256557675</span>   <span class="number">0.99750629604357488</span>
+<span class="number">60</span><span class="special">,</span> <span class="number">0.00042319397814867202</span>   <span class="number">0.99792949002172360</span>
+<span class="number">61</span><span class="special">,</span> <span class="number">0.00035381791615708398</span>   <span class="number">0.99828330793788067</span>
+<span class="number">62</span><span class="special">,</span> <span class="number">0.00029532382517950324</span>   <span class="number">0.99857863176306016</span>
+<span class="number">63</span><span class="special">,</span> <span class="number">0.00024610318764958566</span>   <span class="number">0.99882473495070978</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="negative_binomial_example1.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../normal_example.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Normal Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="neg_binom_eg/negative_binomial_example2.html" title="Negative Binomial Table Printing Example.">
+<link rel="next" href="normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_eg/negative_binomial_example2.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="normal_example/normal_misc.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_normal_example">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.normal_example"></a><a class="link" href="normal_example.html" title="Normal Distribution Examples">Normal Distribution
+        Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc"><dt><span class="section"><a href="normal_example/normal_misc.html">Some
+          Miscellaneous Examples of the Normal (Gaussian) Distribution</a></span></dt></dl></div>
+<p>
+          (See also the reference documentation for the <a class="link" href="../../dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal
+          Distribution</a>.)
+        </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="neg_binom_eg/negative_binomial_example2.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="normal_example/normal_misc.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example/normal_misc.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/normal_example/normal_misc.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,508 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Some Miscellaneous Examples of the Normal (Gaussian) Distribution</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../normal_example.html" title="Normal Distribution Examples">
+<link rel="prev" href="../normal_example.html" title="Normal Distribution Examples">
+<link rel="next" href="../inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../normal_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../normal_example.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../inverse_chi_squared_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_normal_example_normal_misc">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc"></a><a class="link" href="normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution">Some
+          Miscellaneous Examples of the Normal (Gaussian) Distribution</a>
+</h5></div></div></div>
+<p>
+            The sample program normal_misc_examples.cpp
+            illustrates their use.
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h0"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.traditional_tables"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.traditional_tables">Traditional
+            Tables</a>
+          </h5>
+<p>
+            First we need some includes to access the normal distribution (and some
+            std output of course).
+          </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// for normal_distribution</span>
+  <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.</span>
+
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">noshowpoint</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+  <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Example: Normal distribution, Miscellaneous Applications."</span><span class="special">;</span>
+
+  <span class="keyword">try</span>
+  <span class="special">{</span>
+    <span class="special">{</span> <span class="comment">// Traditional tables and values.</span>
+</pre>
+<p>
+            Let's start by printing some traditional tables.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">step</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// in z </span>
+<span class="keyword">double</span> <span class="identifier">range</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span> <span class="comment">// min and max z = -range to +range.</span>
+<span class="keyword">int</span> <span class="identifier">precision</span> <span class="special">=</span> <span class="number">17</span><span class="special">;</span> <span class="comment">// traditional tables are only computed to much lower precision.</span>
+<span class="comment">// but std::numeric_limits<double>::max_digits10; on new Standard Libraries gives</span>
+<span class="comment">// 17, the maximum number of digits that can possibly be significant.</span>
+<span class="comment">// std::numeric_limits<double>::digits10; == 15 is number of guaranteed digits,</span>
+<span class="comment">// the other two digits being 'noisy'.</span>
+
+<span class="comment">// Construct a standard normal distribution s</span>
+  <span class="identifier">normal</span> <span class="identifier">s</span><span class="special">;</span> <span class="comment">// (default mean = zero, and standard deviation = unity)</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard normal distribution, mean = "</span><span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+    <span class="special"><<</span> <span class="string">", standard deviation = "</span> <span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            First the probability distribution function (pdf).
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability distribution function values"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  z "</span> <span class="string">"      pdf "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">range</span><span class="special">;</span> <span class="identifier">z</span> <span class="special"><</span> <span class="identifier">range</span> <span class="special">+</span> <span class="identifier">step</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">+=</span> <span class="identifier">step</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" "</span>
+    <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">12</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">6</span><span class="special">);</span> <span class="comment">// default</span>
+</pre>
+<p>
+            And the area under the normal curve from -∞ up to z, the cumulative distribution
+            function (cdf).
+          </p>
+<pre class="programlisting"><span class="comment">// For a standard normal distribution </span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard normal mean = "</span><span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">", standard deviation = "</span> <span class="special"><<</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Integral (area under the curve) from - infinity up to z "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"  z "</span> <span class="string">"      cdf "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">range</span><span class="special">;</span> <span class="identifier">z</span> <span class="special"><</span> <span class="identifier">range</span> <span class="special">+</span> <span class="identifier">step</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">+=</span> <span class="identifier">step</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" "</span>
+    <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">12</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">6</span><span class="special">);</span> <span class="comment">// default</span>
+</pre>
+<p>
+            And all this you can do with a nanoscopic amount of work compared to
+            the team of <span class="bold"><strong>human computers</strong></span> toiling
+            with Milton Abramovitz and Irene Stegen at the US National Bureau of
+            Standards (now NIST). Starting
+            in 1938, their "Handbook of Mathematical Functions with Formulas,
+            Graphs and Mathematical Tables", was eventually published in 1964,
+            and has been reprinted numerous times since. (A major replacement is
+            planned at <a href="http://dlmf.nist.gov" target="_top">Digital Library of Mathematical
+            Functions</a>).
+          </p>
+<p>
+            Pretty-printing a traditional 2-dimensional table is left as an exercise
+            for the student, but why bother now that the Math Toolkit lets you write
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Area for z = "</span> <span class="special"><<</span> <span class="identifier">z</span> <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// to get the area for z.</span>
+</pre>
+<p>
+            Correspondingly, we can obtain the traditional 'critical' values for
+            significance levels. For the 95% confidence level, the significance level
+            usually called alpha, is 0.05 = 1 - 0.95 (for a one-sided test), so we
+            can write
+          </p>
+<pre class="programlisting">  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"95% of area has a z below "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.95</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// 95% of area has a z below 1.64485</span>
+</pre>
+<p>
+            and a two-sided test (a comparison between two levels, rather than a
+            one-sided test)
+          </p>
+<pre class="programlisting">  <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"95% of area has a z between "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span>
+    <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="special">-</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// 95% of area has a z between 1.95996 and -1.95996</span>
+</pre>
+<p>
+            First, define a table of significance levels: these are the probabilities
+            that the true occurrence frequency lies outside the calculated interval.
+          </p>
+<p>
+            It is convenient to have an alpha level for the probability that z lies
+            outside just one standard deviation. This will not be some nice neat
+            number like 0.05, but we can easily calculate it,
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha1</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="number">2</span><span class="special">;</span> <span class="comment">// 0.3173105078629142</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">17</span><span class="special">)</span> <span class="special"><<</span> <span class="string">"Significance level for z == 1 is "</span> <span class="special"><<</span> <span class="identifier">alpha1</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            and place in our array of favorite alpha values.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.3173105078629142</span><span class="special">,</span> <span class="comment">// z for 1 standard deviation.</span>
+  <span class="number">0.20</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Confidence value as % is (1 - alpha) * 100 (so alpha 0.05 == 95% confidence)
+            that the true occurrence frequency lies <span class="bold"><strong>inside</strong></span>
+            the calculated interval.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"level of significance (alpha)"</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"2-sided       1 -sided          z(alpha) "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<span class="special">{</span>
+  <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">15</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span><span class="number">2</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class=
"special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>  <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+  <span class="comment">// Use quantile(complement(s, alpha[i]/2)) to avoid potential loss of accuracy from quantile(s,  1 - alpha[i]/2) </span>
+<span class="special">}</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Notice the distinction between one-sided (also called one-tailed) where
+            we are using a > <span class="bold"><strong>or</strong></span> < test (and
+            not both) and considering the area of the tail (integral) from z up to
+            +∞, and a two-sided test where we are using two > <span class="bold"><strong>and</strong></span>
+            < tests, and thus considering two tails, from -∞ up to z low and z high
+            up to +∞.
+          </p>
+<p>
+            So the 2-sided values alpha[i] are calculated using alpha[i]/2.
+          </p>
+<p>
+            If we consider a simple example of alpha = 0.05, then for a two-sided
+            test, the lower tail area from -∞ up to -1.96 is 0.025 (alpha/2) and the
+            upper tail area from +z up to +1.96 is also 0.025 (alpha/2), and the
+            area between -1.96 up to 12.96 is alpha = 0.95. and the sum of the two
+            tails is 0.025 + 0.025 = 0.05,
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h1"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_">Standard
+            deviations either side of the Mean</a>
+          </h5>
+<p>
+            Armed with the cumulative distribution function, we can easily calculate
+            the easy to remember proportion of values that lie within 1, 2 and 3
+            standard deviations from the mean.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">showpoint</span> <span class="special"><<</span> <span class="string">"cdf(s, s.standard_deviation()) = "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">())</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>  <span class="comment">// from -infinity to 1 sd</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"cdf(complement(s, s.standard_deviation())) = "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction 1 standard deviation within either side of mean is "</span>
+  <span class="special"><<</span> <span class="number">1</span> <span class="special">-</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()))</span> <span class="special">*</span> <span class="number">2</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction 2 standard deviations within either side of mean is "</span>
+  <span class="special"><<</span> <span class="number">1</span> <span class="special">-</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()))</span> <span class="special">*</span> <span class="number">2</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction 3 standard deviations within either side of mean is "</span>
+  <span class="special"><<</span> <span class="number">1</span> <span class="special">-</span>  <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">3</span> <span class="special">*</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()))</span> <span class="special">*</span> <span class="number">2</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            To a useful precision, the 1, 2 & 3 percentages are 68, 95 and 99.7,
+            and these are worth memorising as useful 'rules of thumb', as, for example,
+            in <a href="http://en.wikipedia.org/wiki/Standard_deviation" target="_top">standard
+            deviation</a>:
+          </p>
+<pre class="programlisting">Fraction 1 standard deviation within either side of mean is 0.683
+Fraction 2 standard deviations within either side of mean is 0.954
+Fraction 3 standard deviations within either side of mean is 0.997
+</pre>
+<p>
+            We could of course get some really accurate values for these <a href="http://en.wikipedia.org/wiki/Confidence_interval" target="_top">confidence
+            intervals</a> by using cout.precision(15);
+          </p>
+<pre class="programlisting">Fraction 1 standard deviation within either side of mean is 0.682689492137086
+Fraction 2 standard deviations within either side of mean is 0.954499736103642
+Fraction 3 standard deviations within either side of mean is 0.997300203936740
+</pre>
+<p>
+            But before you get too excited about this impressive precision, don't
+            forget that the <span class="bold"><strong>confidence intervals of the standard
+            deviation</strong></span> are surprisingly wide, especially if you have estimated
+            the standard deviation from only a few measurements.
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h2"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.some_simple_examples"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.some_simple_examples">Some
+            simple examples</a>
+          </h5>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h3"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs">Life
+            of light bulbs</a>
+          </h5>
+<p>
+            Examples from K. Krishnamoorthy, Handbook of Statistical Distributions
+            with Applications, ISBN 1 58488 635 8, page 125... implemented using
+            the Math Toolkit library.
+          </p>
+<p>
+            A few very simple examples are shown here:
+          </p>
+<pre class="programlisting"><span class="comment">// K. Krishnamoorthy, Handbook of Statistical Distributions with Applications,</span>
+ <span class="comment">// ISBN 1 58488 635 8, page 125, example 10.3.5</span>
+</pre>
+<p>
+            Mean lifespan of 100 W bulbs is 1100 h with standard deviation of 100
+            h. Assuming, perhaps with little evidence and much faith, that the distribution
+            is normal, we construct a normal distribution called <span class="emphasis"><em>bulbs</em></span>
+            with these values:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean_life</span> <span class="special">=</span> <span class="number">1100.</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">life_standard_deviation</span> <span class="special">=</span> <span class="number">100.</span><span class="special">;</span>
+<span class="identifier">normal</span> <span class="identifier">bulbs</span><span class="special">(</span><span class="identifier">mean_life</span><span class="special">,</span> <span class="identifier">life_standard_deviation</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">expected_life</span> <span class="special">=</span> <span class="number">1000.</span><span class="special">;</span>
+</pre>
+<p>
+            The we can use the Cumulative distribution function to predict fractions
+            (or percentages, if * 100) that will last various lifetimes.
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction of bulbs that will last at best (<=) "</span> <span class="comment">// P(X <= 1000)</span>
+  <span class="special"><<</span> <span class="identifier">expected_life</span> <span class="special"><<</span> <span class="string">" is "</span><span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">expected_life</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction of bulbs that will last at least (>) "</span> <span class="comment">// P(X > 1000)</span>
+  <span class="special"><<</span> <span class="identifier">expected_life</span> <span class="special"><<</span> <span class="string">" is "</span><span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">expected_life</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">min_life</span> <span class="special">=</span> <span class="number">900</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">max_life</span> <span class="special">=</span> <span class="number">1200</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction of bulbs that will last between "</span>
+  <span class="special"><<</span> <span class="identifier">min_life</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">max_life</span> <span class="special"><<</span> <span class="string">" is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">max_life</span><span class="special">)</span>  <span class="comment">// P(X <= 1200)</span>
+   <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">min_life</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X <= 900)</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              Real-life failures are often very ab-normal, with a significant number
+              that 'dead-on-arrival' or suffer failure very early in their life:
+              the lifetime of the survivors of 'early mortality' may be well described
+              by the normal distribution.
+            </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h4"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.how_many_onions"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.how_many_onions">How
+            many onions?</a>
+          </h5>
+<p>
+            Weekly demand for 5 lb sacks of onions at a store is normally distributed
+            with mean 140 sacks and standard deviation 10.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">140.</span><span class="special">;</span> <span class="comment">// sacks per week.</span>
+<span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>
+<span class="identifier">normal</span> <span class="identifier">sacks</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">stock</span> <span class="special">=</span> <span class="number">160.</span><span class="special">;</span> <span class="comment">// per week.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Percentage of weeks overstocked "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="identifier">stock</span><span class="special">)</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X <=160)</span>
+<span class="comment">// Percentage of weeks overstocked 97.7</span>
+</pre>
+<p>
+            So there will be lots of mouldy onions! So we should be able to say what
+            stock level will meet demand 95% of the weeks.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">stock_95</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.95</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Store should stock "</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_95</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" sacks to meet 95% of demands."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            And it is easy to estimate how to meet 80% of demand, and waste even
+            less.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">stock_80</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.80</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Store should stock "</span> <span class="special"><<</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_80</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" sacks to meet 8 out of 10 demands."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h5"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.packing_beef"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.packing_beef">Packing
+            beef</a>
+          </h5>
+<p>
+            A machine is set to pack 3 kg of ground beef per pack. Over a long period
+            of time it is found that the average packed was 3 kg with a standard
+            deviation of 0.1 kg. Assuming the packing is normally distributed, we
+            can find the fraction (or %) of packages that weigh more than 3.1 kg.
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="identifier">normal</span> <span class="identifier">packs</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">max_weight</span> <span class="special">=</span> <span class="number">3.1</span><span class="special">;</span> <span class="comment">// kg</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Percentage of packs > "</span> <span class="special"><<</span> <span class="identifier">max_weight</span> <span class="special"><<</span> <span class="string">" is "</span>
+<span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">max_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X > 3.1)</span>
+
+<span class="keyword">double</span> <span class="identifier">under_weight</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"fraction of packs <= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs <= 2.9 with a mean of 3 is 0.841345</span>
+<span class="comment">// This is 0.84 - more than the target 0.95</span>
+<span class="comment">// Want 95% to be over this weight, so what should we set the mean weight to be?</span>
+<span class="comment">// KK StatCalc says:</span>
+<span class="keyword">double</span> <span class="identifier">over_mean</span> <span class="special">=</span> <span class="number">3.0664</span><span class="special">;</span>
+<span class="identifier">normal</span> <span class="identifier">xpacks</span><span class="special">(</span><span class="identifier">over_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span>
+<span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">xpacks</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">xpacks</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// fraction of packs >= 2.9 with a mean of 3.06449 is 0.950005</span>
+<span class="keyword">double</span> <span class="identifier">under_fraction</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span>  <span class="comment">// so 95% are above the minimum weight mean - sd = 2.9</span>
+<span class="keyword">double</span> <span class="identifier">low_limit</span> <span class="special">=</span> <span class="identifier">standard_deviation</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">offset</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">-</span> <span class="identifier">low_limit</span> <span class="special">-</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">nominal_mean</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">+</span> <span class="identifier">offset</span><span class="special">;</span>
+
+<span class="identifier">normal</span> <span class="identifier">nominal_packs</span><span class="special">(</span><span class="identifier">nominal_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Setting the packer to "</span> <span class="special"><<</span> <span class="identifier">nominal_mean</span> <span class="special"><<</span> <span class="string">" will mean that "</span>
+  <span class="special"><<</span> <span class="string">"fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">nominal_packs</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Setting the packer to 3.06449 will mean that fraction of packs >=
+            2.9 is 0.95.
+          </p>
+<p>
+            Setting the packer to 3.13263 will mean that fraction of packs >=
+            2.9 is 0.99, but will more than double the mean loss from 0.0644 to 0.133.
+          </p>
+<p>
+            Alternatively, we could invest in a better (more precise) packer with
+            a lower standard deviation.
+          </p>
+<p>
+            To estimate how much better (how much smaller standard deviation) it
+            would have to be, we need to get the 5% quantile to be located at the
+            under_weight limit, 2.9
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">//</span>
+</pre>
+<p>
+            Quantile of 0.05 = 2.83551, mean = 3, sd = 0.1
+          </p>
+<p>
+            With the current packer (mean = 3, sd = 0.1), the 5% quantile is at 2.8551
+            kg, a little below our target of 2.9 kg. So we know that the standard
+            deviation is going to have to be smaller.
+          </p>
+<p>
+            Let's start by guessing that it (now 0.1) needs to be halved, to a standard
+            deviation of 0.05
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//</span>
+</pre>
+<p>
+            Fraction of packs >= 2.9 with a mean of 3 and standard deviation of
+            0.05 is 0.9772
+          </p>
+<p>
+            So 0.05 was quite a good guess, but we are a little over the 2.9 target,
+            so the standard deviation could be a tiny bit more. So we could do some
+            more guessing to get closer, say by increasing to 0.06
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile of "</span> <span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" = "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
+  <span class="special"><<</span> <span class="string">", mean = "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special"><<</span> <span class="string">", sd = "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+            Fraction of packs >= 2.9 with a mean of 3 and standard deviation of
+            0.06 is 0.9522
+          </p>
+<p>
+            Now we are getting really close, but to do the job properly, we could
+            use root finding method, for example the tools provided, and used elsewhere,
+            in the Math Toolkit, see <a class="link" href="../../../internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">Root
+            Finding Without Derivatives</a>.
+          </p>
+<p>
+            But in this normal distribution case, we could be even smarter and make
+            a direct calculation.
+          </p>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">s</span><span class="special">;</span> <span class="comment">// For standard normal distribution, </span>
+<span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span> <span class="comment">// Our required limit.</span>
+<span class="comment">// then probability p = N((x - mean) / sd)</span>
+<span class="comment">// So if we want to find the standard deviation that would be required to meet this limit,</span>
+<span class="comment">// so that the p th quantile is located at x,</span>
+<span class="comment">// in this case the 0.95 (95%) quantile at 2.9 kg pack weight, when the mean is 3 kg.</span>
+
+<span class="keyword">double</span> <span class="identifier">prob</span> <span class="special">=</span>  <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">sd</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">qp</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.95</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"prob = "</span> <span class="special"><<</span> <span class="identifier">prob</span> <span class="special"><<</span> <span class="string">", quantile(p) "</span> <span class="special"><<</span> <span class="identifier">qp</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// p = 0.241971, quantile(p) 1.64485</span>
+<span class="comment">// Rearranging, we can directly calculate the required standard deviation:</span>
+<span class="keyword">double</span> <span class="identifier">sd95</span> <span class="special">=</span> <span class="identifier">abs</span><span class="special">((</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">qp</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"If we want the "</span><span class="special"><<</span> <span class="identifier">p</span> <span class="special"><<</span> <span class="string">" th quantile to be located at "</span>
+  <span class="special"><<</span> <span class="identifier">x</span> <span class="special"><<</span> <span class="string">", would need a standard deviation of "</span> <span class="special"><<</span> <span class="identifier">sd95</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">normal</span> <span class="identifier">pack95</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">sd95</span><span class="special">);</span>  <span class="comment">// Distribution of the 'ideal better' packer.</span>
+<span class="identifier">cout</span> <span class="special"><<</span><span class="string">"Fraction of packs >= "</span> <span class="special"><<</span> <span class="identifier">under_weight</span> <span class="special"><<</span> <span class="string">" with a mean of "</span> <span class="special"><<</span> <span class="identifier">mean</span>
+  <span class="special"><<</span> <span class="string">" and standard deviation of "</span> <span class="special"><<</span> <span class="identifier">pack95</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
+  <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack95</span><span class="special">,</span> <span class="identifier">under_weight</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="comment">// Fraction of packs >= 2.9 with a mean of 3 and standard deviation of 0.0608 is 0.95</span>
+</pre>
+<p>
+            Notice that these two deceptively simple questions (do we over-fill or
+            measure better) are actually very common. The weight of beef might be
+            replaced by a measurement of more or less anything. But the calculations
+            rely on the accuracy of the standard deviation - something that is almost
+            always less good than we might wish, especially if based on a few measurements.
+          </p>
+<h5>
+<a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.h6"></a>
+            <span class="phrase"><a name="math_toolkit.stat_tut.weg.normal_example.normal_misc.length_of_bolts"></a></span><a class="link" href="normal_misc.html#math_toolkit.stat_tut.weg.normal_example.normal_misc.length_of_bolts">Length
+            of bolts</a>
+          </h5>
+<p>
+            A bolt is usable if between 3.9 and 4.1 long. From a large batch of bolts,
+            a sample of 50 show a mean length of 3.95 with standard deviation 0.1.
+            Assuming a normal distribution, what proportion is usable? The true sample
+            mean is unknown, but we can use the sample mean and standard deviation
+            to find approximate solutions.
+          </p>
+<pre class="programlisting">    <span class="identifier">normal</span> <span class="identifier">bolts</span><span class="special">(</span><span class="number">3.95</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+    <span class="keyword">double</span> <span class="identifier">top</span> <span class="special">=</span> <span class="number">4.1</span><span class="special">;</span>
+    <span class="keyword">double</span> <span class="identifier">bottom</span> <span class="special">=</span> <span class="number">3.9</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction long enough [ P(X <= "</span> <span class="special"><<</span> <span class="identifier">top</span> <span class="special"><<</span> <span class="string">") ] is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="identifier">top</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction too short [ P(X <= "</span> <span class="special"><<</span> <span class="identifier">bottom</span> <span class="special"><<</span> <span class="string">") ] is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="identifier">bottom</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction OK  -between "</span> <span class="special"><<</span> <span class="identifier">bottom</span> <span class="special"><<</span> <span class="string">" and "</span> <span class="special"><<</span> <span class="identifier">top</span>
+  <span class="special"><<</span> <span class="string">"[ P(X <= "</span> <span class="special"><<</span> <span class="identifier">top</span>  <span class="special"><<</span> <span class="string">") - P(X<= "</span> <span class="special"><<</span> <span class="identifier">bottom</span> <span class="special"><<</span> <span class="string">" ) ] is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="identifier">top</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="identifier">bottom</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Fraction too long [ P(X > "</span> <span class="special"><<</span> <span class="identifier">top</span> <span class="special"><<</span> <span class="string">") ] is "</span>
+  <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="identifier">top</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"95% of bolts are shorter than "</span> <span class="special"><<</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">bolts</span><span class="special">,</span> <span class="number">0.95</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../normal_example.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../normal_example.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../inverse_chi_squared_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Student's t Distribution Examples</title>
+<link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../weg.html" title="Worked Examples">
+<link rel="prev" href="dist_construct_eg.html" title="Distribution Construction Examples">
+<link rel="next" href="st_eg/tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="dist_construct_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="st_eg/tut_mean_intervals.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg"></a><a class="link" href="st_eg.html" title="Student's t Distribution Examples">Student's t Distribution
+        Examples</a>
+</h4></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="st_eg/tut_mean_intervals.html">Calculating
+          confidence intervals on the mean with the Students-t distribution</a></span></dt>
+<dt><span class="section"><a href="st_eg/tut_mean_test.html">Testing
+          a sample mean for difference from a "true" mean</a></span></dt>
+<dt><span class="section"><a href="st_eg/tut_mean_size.html">Estimating
+          how large a sample size would have to become in order to give a significant
+          Students-t test result with a single sample test</a></span></dt>
+<dt><span class="section"><a href="st_eg/two_sample_students_t.html">Comparing
+          the means of two samples with the Students-t test</a></span></dt>
+<dt><span class="section"><a href="st_eg/paired_st.html">Comparing
+          two paired samples with the Student's t distribution</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="dist_construct_eg.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="st_eg/tut_mean_intervals.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/paired_st.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/paired_st.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Comparing two paired samples with the Student's t distribution</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="prev" href="two_sample_students_t.html" title="Comparing the means of two samples with the Students-t test">
+<link rel="next" href="../cs_eg.html" title="Chi Squared Distribution Examples">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="two_sample_students_t.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../cs_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg_paired_st">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg.paired_st"></a><a class="link" href="paired_st.html" title="Comparing two paired samples with the Student's t distribution">Comparing
+          two paired samples with the Student's t distribution</a>
+</h5></div></div></div>
+<p>
+            Imagine that we have a before and after reading for each item in the
+            sample: for example we might have measured blood pressure before and
+            after administration of a new drug. We can't pool the results and compare
+            the means before and after the change, because each patient will have
+            a different baseline reading. Instead we calculate the difference between
+            before and after measurements in each patient, and calculate the mean
+            and standard deviation of the differences. To test whether a significant
+            change has taken place, we can then test the null-hypothesis that the
+            true mean is zero using the same procedure we used in the single sample
+            cases previously discussed.
+          </p>
+<p>
+            That means we can:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+                <a class="link" href="tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution">Calculate
+                confidence intervals of the mean</a>. If the endpoints of the
+                interval differ in sign then we are unable to reject the null-hypothesis
+                that there is no change.
+              </li>
+<li class="listitem">
+                <a class="link" href="tut_mean_test.html" title='Testing a sample mean for difference from a "true" mean'>Test
+                whether the true mean is zero</a>. If the result is consistent
+                with a true mean of zero, then we are unable to reject the null-hypothesis
+                that there is no change.
+              </li>
+<li class="listitem">
+                <a class="link" href="tut_mean_size.html" title="Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test">Calculate
+                how many pairs of readings we would need in order to obtain a significant
+                result</a>.
+              </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="two_sample_students_t.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../cs_eg.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_intervals.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,257 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Calculating confidence intervals on the mean with the Students-t distribution</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="prev" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="next" href="tut_mean_test.html" title='Testing a sample mean for difference from a "true" mean'>
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../st_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_test.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg_tut_mean_intervals">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg.tut_mean_intervals"></a><a class="link" href="tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution">Calculating
+          confidence intervals on the mean with the Students-t distribution</a>
+</h5></div></div></div>
+<p>
+            Let's say you have a sample mean, you may wish to know what confidence
+            intervals you can place on that mean. Colloquially: "I want an interval
+            that I can be P% sure contains the true mean". (On a technical point,
+            note that the interval either contains the true mean or it does not:
+            the meaning of the confidence level is subtly different from this colloquialism.
+            More background information can be found on the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda352.htm" target="_top">NIST
+            site</a>).
+          </p>
+<p>
+            The formula for the interval can be expressed as:
+          </p>
+<p>
+            <span class="inlinemediaobject"><img src="../../../../../equations/dist_tutorial4.png"></span>
+          </p>
+<p>
+            Where, <span class="emphasis"><em>Y<sub>s</sub></em></span> is the sample mean, <span class="emphasis"><em>s</em></span>
+            is the sample standard deviation, <span class="emphasis"><em>N</em></span> is the sample
+            size, /α/ is the desired significance level and <span class="emphasis"><em>t<sub>(α/2,N-1)</sub></em></span>
+            is the upper critical value of the Students-t distribution with <span class="emphasis"><em>N-1</em></span>
+            degrees of freedom.
+          </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+              The quantity α   is the maximum acceptable risk of falsely rejecting the
+              null-hypothesis. The smaller the value of α the greater the strength
+              of the test.
+            </p>
+<p>
+              The confidence level of the test is defined as 1 - α, and often expressed
+              as a percentage. So for example a significance level of 0.05, is equivalent
+              to a 95% confidence level. Refer to <a href="http://www.itl.nist.gov/div898/handbook/prc/section1/prc14.htm" target="_top">"What
+              are confidence intervals?"</a> in <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+              e-Handbook of Statistical Methods.</a> for more information.
+            </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              The usual assumptions of <a href="http://en.wikipedia.org/wiki/Independent_and_identically-distributed_random_variables" target="_top">independent
+              and identically distributed (i.i.d.)</a> variables and <a href="http://en.wikipedia.org/wiki/Normal_distribution" target="_top">normal
+              distribution</a> of course apply here, as they do in other examples.
+            </p></td></tr>
+</table></div>
+<p>
+            From the formula, it should be clear that:
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+                The width of the confidence interval decreases as the sample size
+                increases.
+              </li>
+<li class="listitem">
+                The width increases as the standard deviation increases.
+              </li>
+<li class="listitem">
+                The width increases as the <span class="emphasis"><em>confidence level increases</em></span>
+                (0.5 towards 0.99999 - stronger).
+              </li>
+<li class="listitem">
+                The width increases as the <span class="emphasis"><em>significance level decreases</em></span>
+                (0.5 towards 0.00000...01 - stronger).
+              </li>
+</ul></div>
+<p>
+            The following example code is taken from the example program students_t_single_sample.cpp.
+          </p>
+<p>
+            We'll begin by defining a procedure to calculate intervals for various
+            confidence levels; the procedure will print these out as a table:
+          </p>
+<pre class="programlisting"><span class="comment">// Needed includes:</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="comment">// Bring everything into global namespace for ease of use:</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">confidence_limits_on_mean</span><span class="special">(</span>
+   <span class="keyword">double</span> <span class="identifier">Sm</span><span class="special">,</span>           <span class="comment">// Sm = Sample Mean.</span>
+   <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span>           <span class="comment">// Sd = Sample Standard Deviation.</span>
+   <span class="keyword">unsigned</span> <span class="identifier">Sn</span><span class="special">)</span>         <span class="comment">// Sn = Sample Size.</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+
+   <span class="comment">// Print out general info:</span>
+   <span class="identifier">cout</span> <span class="special"><<</span>
+      <span class="string">"__________________________________\n"</span>
+      <span class="string">"2-Sided Confidence Limits For Mean\n"</span>
+      <span class="string">"__________________________________\n\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">7</span><span class="special">);</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Number of Observations"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">Sn</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Mean"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">Sm</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">40</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">Sd</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            We'll define a table of significance/risk levels for which we'll compute
+            intervals:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Note that these are the complements of the confidence/probability levels:
+            0.5, 0.75, 0.9 .. 0.99999).
+          </p>
+<p>
+            Next we'll declare the distribution object we'll need, note that the
+            <span class="emphasis"><em>degrees of freedom</em></span> parameter is the sample size
+            less one:
+          </p>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">Sn</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<p>
+            Most of what follows in the program is pretty printing, so let's focus
+            on the calculation of the interval. First we need the t-statistic, computed
+            using the <span class="emphasis"><em>quantile</em></span> function and our significance
+            level. Note that since the significance levels are the complement of
+            the probability, we have to wrap the arguments in a call to <span class="emphasis"><em>complement(...)</em></span>:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">T</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
+</pre>
+<p>
+            Note that alpha was divided by two, since we'll be calculating both the
+            upper and lower bounds: had we been interested in a single sided interval
+            then we would have omitted this step.
+          </p>
+<p>
+            Now to complete the picture, we'll get the (one-sided) width of the interval
+            from the t-statistic by multiplying by the standard deviation, and dividing
+            by the square root of the sample size:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">w</span> <span class="special">=</span> <span class="identifier">T</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="keyword">double</span><span class="special">(</span><span class="identifier">Sn</span><span class="special">));</span>
+</pre>
+<p>
+            The two-sided interval is then the sample mean plus and minus this width.
+          </p>
+<p>
+            And apart from some more pretty-printing that completes the procedure.
+          </p>
+<p>
+            Let's take a look at some sample output, first using the <a href="http://www.itl.nist.gov/div898/handbook/eda/section4/eda428.htm" target="_top">Heat
+            flow data</a> from the NIST site. The data set was collected by Bob
+            Zarr of NIST in January, 1990 from a heat flow meter calibration and
+            stability analysis. The corresponding dataplot output for this test can
+            be found in <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda352.htm" target="_top">section
+            3.5.2</a> of the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>.
+          </p>
+<pre class="programlisting">   __________________________________
+   2-Sided Confidence Limits For Mean
+   __________________________________
+
+   Number of Observations                  =  195
+   Mean                                    =  9.26146
+   Standard Deviation                      =  0.02278881
+
+
+   ___________________________________________________________________
+   Confidence       T           Interval          Lower          Upper
+    Value (%)     Value          Width            Limit          Limit
+   ___________________________________________________________________
+       50.000     0.676       1.103e-003        9.26036        9.26256
+       75.000     1.154       1.883e-003        9.25958        9.26334
+       90.000     1.653       2.697e-003        9.25876        9.26416
+       95.000     1.972       3.219e-003        9.25824        9.26468
+       99.000     2.601       4.245e-003        9.25721        9.26571
+       99.900     3.341       5.453e-003        9.25601        9.26691
+       99.990     3.973       6.484e-003        9.25498        9.26794
+       99.999     4.537       7.404e-003        9.25406        9.26886
+</pre>
+<p>
+            As you can see the large sample size (195) and small standard deviation
+            (0.023) have combined to give very small intervals, indeed we can be
+            very confident that the true mean is 9.2.
+          </p>
+<p>
+            For comparison the next example data output is taken from <span class="emphasis"><em>P.K.Hou,
+            O. W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. and from Statistics
+            for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J.
+            N. Miller, Ellis Horwood ISBN 0 13 0309907.</em></span> The values result
+            from the determination of mercury by cold-vapour atomic absorption.
+          </p>
+<pre class="programlisting">   __________________________________
+   2-Sided Confidence Limits For Mean
+   __________________________________
+
+   Number of Observations                  =  3
+   Mean                                    =  37.8000000
+   Standard Deviation                      =  0.9643650
+
+
+   ___________________________________________________________________
+   Confidence       T           Interval          Lower          Upper
+    Value (%)     Value          Width            Limit          Limit
+   ___________________________________________________________________
+       50.000     0.816            0.455       37.34539       38.25461
+       75.000     1.604            0.893       36.90717       38.69283
+       90.000     2.920            1.626       36.17422       39.42578
+       95.000     4.303            2.396       35.40438       40.19562
+       99.000     9.925            5.526       32.27408       43.32592
+       99.900    31.599           17.594       20.20639       55.39361
+       99.990    99.992           55.673      -17.87346       93.47346
+       99.999   316.225          176.067     -138.26683      213.86683
+</pre>
+<p>
+            This time the fact that there are only three measurements leads to much
+            wider intervals, indeed such large intervals that it's hard to be very
+            confident in the location of the mean.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../st_eg.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_test.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_size.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_size.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,169 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="prev" href="tut_mean_test.html" title='Testing a sample mean for difference from a "true" mean'>
+<link rel="next" href="two_sample_students_t.html" title="Comparing the means of two samples with the Students-t test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_test.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="two_sample_students_t.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg_tut_mean_size">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg.tut_mean_size"></a><a class="link" href="tut_mean_size.html" title="Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test">Estimating
+          how large a sample size would have to become in order to give a significant
+          Students-t test result with a single sample test</a>
+</h5></div></div></div>
+<p>
+            Imagine you have conducted a Students-t test on a single sample in order
+            to check for systematic errors in your measurements. Imagine that the
+            result is borderline. At this point one might go off and collect more
+            data, but it might be prudent to first ask the question "How much
+            more?". The parameter estimators of the students_t_distribution
+            class can provide this information.
+          </p>
+<p>
+            This section is based on the example code in students_t_single_sample.cpp
+            and we begin by defining a procedure that will print out a table of estimated
+            sample sizes for various confidence levels:
+          </p>
+<pre class="programlisting"><span class="comment">// Needed includes:</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="comment">// Bring everything into global namespace for ease of use:</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">single_sample_find_df</span><span class="special">(</span>
+   <span class="keyword">double</span> <span class="identifier">M</span><span class="special">,</span>          <span class="comment">// M = true mean.</span>
+   <span class="keyword">double</span> <span class="identifier">Sm</span><span class="special">,</span>         <span class="comment">// Sm = Sample Mean.</span>
+   <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">)</span>         <span class="comment">// Sd = Sample Standard Deviation.</span>
+<span class="special">{</span>
+</pre>
+<p>
+            Next we define a table of significance levels:
+          </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+</pre>
+<p>
+            Printing out the table of sample sizes required for various confidence
+            levels begins with the table header:
+          </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"\n\n"</span>
+        <span class="string">"_______________________________________________________________\n"</span>
+        <span class="string">"Confidence       Estimated          Estimated\n"</span>
+        <span class="string">" Value (%)      Sample Size        Sample Size\n"</span>
+        <span class="string">"              (one sided test)    (two sided test)\n"</span>
+        <span class="string">"_______________________________________________________________\n"</span><span class="special">;</span>
+</pre>
+<p>
+            And now the important part: the sample sizes required. Class <code class="computeroutput"><span class="identifier">students_t_distribution</span></code> has a static
+            member function <code class="computeroutput"><span class="identifier">find_degrees_of_freedom</span></code>
+            that will calculate how large a sample size needs to be in order to give
+            a definitive result.
+          </p>
+<p>
+            The first argument is the difference between the means that you wish
+            to be able to detect, here it's the absolute value of the difference
+            between the sample mean, and the true mean.
+          </p>
+<p>
+            Then come two probability values: alpha and beta. Alpha is the maximum
+            acceptable risk of rejecting the null-hypothesis when it is in fact true.
+            Beta is the maximum acceptable risk of failing to reject the null-hypothesis
+            when in fact it is false. Also note that for a two-sided test, alpha
+            must be divided by 2.
+          </p>
+<p>
+            The final parameter of the function is the standard deviation of the
+            sample.
+          </p>
+<p>
+            In this example, we assume that alpha and beta are the same, and call
+            <code class="computeroutput"><span class="identifier">find_degrees_of_freedom</span></code>
+            twice: once with alpha for a one-sided test, and once with alpha/2 for
+            a two-sided test.
+          </p>
+<pre class="programlisting">   <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+   <span class="special">{</span>
+      <span class="comment">// Confidence value:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+      <span class="comment">// calculate df for single sided test:</span>
+      <span class="keyword">double</span> <span class="identifier">df</span> <span class="special">=</span> <span class="identifier">students_t</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+         <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">M</span> <span class="special">-</span> <span class="identifier">Sm</span><span class="special">),</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">Sd</span><span class="special">);</span>
+      <span class="comment">// convert to sample size:</span>
+      <span class="keyword">double</span> <span class="identifier">size</span> <span class="special">=</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">df</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">;</span>
+      <span class="comment">// Print size:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">size</span><span class="special">;</span>
+      <span class="comment">// calculate df for two sided test:</span>
+      <span class="identifier">df</span> <span class="special">=</span> <span class="identifier">students_t</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+         <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">M</span> <span class="special">-</span> <span class="identifier">Sm</span><span class="special">),</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]/</span><span class="number">2</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">Sd</span><span class="special">);</span>
+      <span class="comment">// convert to sample size:</span>
+      <span class="identifier">size</span> <span class="special">=</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">df</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">;</span>
+      <span class="comment">// Print size:</span>
+      <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">fixed</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">right</span> <span class="special"><<</span> <span class="identifier">size</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+   <span class="special">}</span>
+   <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            Let's now look at some sample output using data taken from <span class="emphasis"><em>P.K.Hou,
+            O. W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. and from Statistics
+            for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J.
+            N. Miller, Ellis Horwood ISBN 0 13 0309907.</em></span> The values result
+            from the determination of mercury by cold-vapour atomic absorption.
+          </p>
+<p>
+            Only three measurements were made, and the Students-t test above gave
+            a borderline result, so this example will show us how many samples would
+            need to be collected:
+          </p>
+<pre class="programlisting">_____________________________________________________________
+Estimated sample sizes required for various confidence levels
+_____________________________________________________________
+
+True Mean                               =  38.90000
+Sample Mean                             =  37.80000
+Sample Standard Deviation               =  0.96437
+
+
+_______________________________________________________________
+Confidence       Estimated          Estimated
+ Value (%)      Sample Size        Sample Size
+              (one sided test)    (two sided test)
+_______________________________________________________________
+    75.000               3               4
+    90.000               7               9
+    95.000              11              13
+    99.000              20              22
+    99.900              35              37
+    99.990              50              53
+    99.999              66              68
+</pre>
+<p>
+            So in this case, many more measurements would have had to be made, for
+            example at the 95% level, 14 measurements in total for a two-sided test.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_test.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="two_sample_students_t.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,324 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Testing a sample mean for difference from a "true" mean</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="prev" href="tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution">
+<link rel="next" href="tut_mean_size.html" title="Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_intervals.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_size.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg_tut_mean_test">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg.tut_mean_test"></a><a class="link" href="tut_mean_test.html" title='Testing a sample mean for difference from a "true" mean'>Testing
+          a sample mean for difference from a "true" mean</a>
+</h5></div></div></div>
+<p>
+            When calibrating or comparing a scientific instrument or measurement
+            method of some kind, we want to be answer the question "Does an
+            observed sample mean differ from the "true" mean in any significant
+            way?". If it does, then we have evidence of a systematic difference.
+            This question can be answered with a Students-t test: more information
+            can be found <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda352.htm" target="_top">on
+            the NIST site</a>.
+          </p>
+<p>
+            Of course, the assignment of "true" to one mean may be quite
+            arbitrary, often this is simply a "traditional" method of measurement.
+          </p>
+<p>
+            The following example code is taken from the example program students_t_single_sample.cpp.
+          </p>
+<p>
+            We'll begin by defining a procedure to determine which of the possible
+            hypothesis are rejected or not-rejected at a given significance level:
+          </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              Non-statisticians might say 'not-rejected' means 'accepted', (often
+              of the null-hypothesis) implying, wrongly, that there really <span class="bold"><strong>IS</strong></span> no difference, but statisticans eschew this
+              to avoid implying that there is positive evidence of 'no difference'.
+              'Not-rejected' here means there is <span class="bold"><strong>no evidence</strong></span>
+              of difference, but there still might well be a difference. For example,
+              see <a href="http://en.wikipedia.org/wiki/Argument_from_ignorance" target="_top">argument
+              from ignorance</a> and <a href="http://www.bmj.com/cgi/content/full/311/7003/485" target="_top">Absence
+              of evidence does not constitute evidence of absence.</a>
+            </p></td></tr>
+</table></div>
+<pre class="programlisting"><span class="comment">// Needed includes:</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="comment">// Bring everything into global namespace for ease of use:</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">single_sample_t_test</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">M</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">Sm</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">Sn</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="comment">//</span>
+   <span class="comment">// M = true mean.</span>
+   <span class="comment">// Sm = Sample Mean.</span>
+   <span class="comment">// Sd = Sample Standard Deviation.</span>
+   <span class="comment">// Sn = Sample Size.</span>
+   <span class="comment">// alpha = Significance Level.</span>
+</pre>
+<p>
+            Most of the procedure is pretty-printing, so let's just focus on the
+            calculation, we begin by calculating the t-statistic:
+          </p>
+<pre class="programlisting"><span class="comment">// Difference in means:</span>
+<span class="keyword">double</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">Sm</span> <span class="special">-</span> <span class="identifier">M</span><span class="special">;</span>
+<span class="comment">// Degrees of freedom:</span>
+<span class="keyword">unsigned</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sn</span> <span class="special">-</span> <span class="number">1</span><span class="special">;</span>
+<span class="comment">// t-statistic:</span>
+<span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="identifier">diff</span> <span class="special">*</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="keyword">double</span><span class="special">(</span><span class="identifier">Sn</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">Sd</span><span class="special">;</span>
+</pre>
+<p>
+            Finally calculate the probability from the t-statistic. If we're interested
+            in simply whether there is a difference (either less or greater) or not,
+            we don't care about the sign of the t-statistic, and we take the complement
+            of the probability for comparison to the significance level:
+          </p>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t_stat</span><span class="special">)));</span>
+</pre>
+<p>
+            The procedure then prints out the results of the various tests that can
+            be done, these can be summarised in the following table:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                    <p>
+                      Hypothesis
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      Test
+                    </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                    <p>
+                      The Null-hypothesis: there is <span class="bold"><strong>no difference</strong></span>
+                      in means
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF for |t| < significance level
+                      / 2:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t</span><span class="special">)))</span>
+                      <span class="special"><</span> <span class="identifier">alpha</span>
+                      <span class="special">/</span> <span class="number">2</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: there <span class="bold"><strong>is
+                      difference</strong></span> in means
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF for |t| > significance level
+                      / 2:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t</span><span class="special">)))</span>
+                      <span class="special">></span> <span class="identifier">alpha</span>
+                      <span class="special">/</span> <span class="number">2</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: the sample mean <span class="bold"><strong>is
+                      less</strong></span> than the true mean.
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if CDF of t > significance level:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">t</span><span class="special">)</span>
+                      <span class="special">></span> <span class="identifier">alpha</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: the sample mean <span class="bold"><strong>is
+                      greater</strong></span> than the true mean.
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF of t > significance level:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">t</span><span class="special">))</span>
+                      <span class="special">></span> <span class="identifier">alpha</span></code>
+                    </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              Notice that the comparisons are against <code class="computeroutput"><span class="identifier">alpha</span>
+              <span class="special">/</span> <span class="number">2</span></code>
+              for a two-sided test and against <code class="computeroutput"><span class="identifier">alpha</span></code>
+              for a one-sided test
+            </p></td></tr>
+</table></div>
+<p>
+            Now that we have all the parts in place, let's take a look at some sample
+            output, first using the <a href="http://www.itl.nist.gov/div898/handbook/eda/section4/eda428.htm" target="_top">Heat
+            flow data</a> from the NIST site. The data set was collected by Bob
+            Zarr of NIST in January, 1990 from a heat flow meter calibration and
+            stability analysis. The corresponding dataplot output for this test can
+            be found in <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda352.htm" target="_top">section
+            3.5.2</a> of the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>.
+          </p>
+<pre class="programlisting">   __________________________________
+   Student t test for a single sample
+   __________________________________
+
+   Number of Observations                                 =  195
+   Sample Mean                                            =  9.26146
+   Sample Standard Deviation                              =  0.02279
+   Expected True Mean                                     =  5.00000
+
+   Sample Mean - Expected Test Mean                       =  4.26146
+   Degrees of Freedom                                     =  194
+   T Statistic                                            =  2611.28380
+   Probability that difference is due to chance           =  0.000e+000
+
+   Results for Alternative Hypothesis and alpha           =  0.0500
+
+   Alternative Hypothesis     Conclusion
+   Mean != 5.000              NOT REJECTED
+   Mean  < 5.000              REJECTED
+   Mean  > 5.000              NOT REJECTED
+</pre>
+<p>
+            You will note the line that says the probability that the difference
+            is due to chance is zero. From a philosophical point of view, of course,
+            the probability can never reach zero. However, in this case the calculated
+            probability is smaller than the smallest representable double precision
+            number, hence the appearance of a zero here. Whatever its "true"
+            value is, we know it must be extraordinarily small, so the alternative
+            hypothesis - that there is a difference in means - is not rejected.
+          </p>
+<p>
+            For comparison the next example data output is taken from <span class="emphasis"><em>P.K.Hou,
+            O. W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. and from Statistics
+            for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J.
+            N. Miller, Ellis Horwood ISBN 0 13 0309907.</em></span> The values result
+            from the determination of mercury by cold-vapour atomic absorption.
+          </p>
+<pre class="programlisting">   __________________________________
+   Student t test for a single sample
+   __________________________________
+
+   Number of Observations                                 =  3
+   Sample Mean                                            =  37.80000
+   Sample Standard Deviation                              =  0.96437
+   Expected True Mean                                     =  38.90000
+
+   Sample Mean - Expected Test Mean                       =  -1.10000
+   Degrees of Freedom                                     =  2
+   T Statistic                                            =  -1.97566
+   Probability that difference is due to chance           =  1.869e-001
+
+   Results for Alternative Hypothesis and alpha           =  0.0500
+
+   Alternative Hypothesis     Conclusion
+   Mean != 38.900             REJECTED
+   Mean  < 38.900             REJECTED
+   Mean  > 38.900             REJECTED
+</pre>
+<p>
+            As you can see the small number of measurements (3) has led to a large
+            uncertainty in the location of the true mean. So even though there appears
+            to be a difference between the sample mean and the expected true mean,
+            we conclude that there is no significant difference, and are unable to
+            reject the null hypothesis. However, if we were to lower the bar for
+            acceptance down to alpha = 0.1 (a 90% confidence level) we see a different
+            output:
+          </p>
+<pre class="programlisting">__________________________________
+Student t test for a single sample
+__________________________________
+
+Number of Observations                                 =  3
+Sample Mean                                            =  37.80000
+Sample Standard Deviation                              =  0.96437
+Expected True Mean                                     =  38.90000
+
+Sample Mean - Expected Test Mean                       =  -1.10000
+Degrees of Freedom                                     =  2
+T Statistic                                            =  -1.97566
+Probability that difference is due to chance           =  1.869e-001
+
+Results for Alternative Hypothesis and alpha           =  0.1000
+
+Alternative Hypothesis     Conclusion
+Mean != 38.900            REJECTED
+Mean  < 38.900            NOT REJECTED
+Mean  > 38.900            REJECTED
+</pre>
+<p>
+            In this case, we really have a borderline result, and more data (and/or
+            more accurate data), is needed for a more convincing conclusion.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_intervals.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_size.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/two_sample_students_t.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/two_sample_students_t.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,349 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Comparing the means of two samples with the Students-t test</title>
+<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../../../index.html" title="Math Toolkit">
+<link rel="up" href="../st_eg.html" title="Student's t Distribution Examples">
+<link rel="prev" href="tut_mean_size.html" title="Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test">
+<link rel="next" href="paired_st.html" title="Comparing two paired samples with the Student's t distribution">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_size.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="paired_st.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_stat_tut_weg_st_eg_two_sample_students_t">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="math_toolkit.stat_tut.weg.st_eg.two_sample_students_t"></a><a class="link" href="two_sample_students_t.html" title="Comparing the means of two samples with the Students-t test">Comparing
+          the means of two samples with the Students-t test</a>
+</h5></div></div></div>
+<p>
+            Imagine that we have two samples, and we wish to determine whether their
+            means are different or not. This situation often arises when determining
+            whether a new process or treatment is better than an old one.
+          </p>
+<p>
+            In this example, we'll be using the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3531.htm" target="_top">Car
+            Mileage sample data</a> from the <a href="http://www.itl.nist.gov" target="_top">NIST
+            website</a>. The data compares miles per gallon of US cars with miles
+            per gallon of Japanese cars.
+          </p>
+<p>
+            The sample code is in students_t_two_samples.cpp.
+          </p>
+<p>
+            There are two ways in which this test can be conducted: we can assume
+            that the true standard deviations of the two samples are equal or not.
+            If the standard deviations are assumed to be equal, then the calculation
+            of the t-statistic is greatly simplified, so we'll examine that case
+            first. In real life we should verify whether this assumption is valid
+            with a Chi-Squared test for equal variances.
+          </p>
+<p>
+            We begin by defining a procedure that will conduct our test assuming
+            equal variances:
+          </p>
+<pre class="programlisting"><span class="comment">// Needed headers:</span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span>
+<span class="comment">// Simplify usage:</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+
+<span class="keyword">void</span> <span class="identifier">two_samples_t_test_equal_sd</span><span class="special">(</span>
+        <span class="keyword">double</span> <span class="identifier">Sm1</span><span class="special">,</span>       <span class="comment">// Sm1 = Sample 1 Mean.</span>
+        <span class="keyword">double</span> <span class="identifier">Sd1</span><span class="special">,</span>       <span class="comment">// Sd1 = Sample 1 Standard Deviation.</span>
+        <span class="keyword">unsigned</span> <span class="identifier">Sn1</span><span class="special">,</span>     <span class="comment">// Sn1 = Sample 1 Size.</span>
+        <span class="keyword">double</span> <span class="identifier">Sm2</span><span class="special">,</span>       <span class="comment">// Sm2 = Sample 2 Mean.</span>
+        <span class="keyword">double</span> <span class="identifier">Sd2</span><span class="special">,</span>       <span class="comment">// Sd2 = Sample 2 Standard Deviation.</span>
+        <span class="keyword">unsigned</span> <span class="identifier">Sn2</span><span class="special">,</span>     <span class="comment">// Sn2 = Sample 2 Size.</span>
+        <span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">)</span>     <span class="comment">// alpha = Significance Level.</span>
+<span class="special">{</span>
+</pre>
+<p>
+            Our procedure will begin by calculating the t-statistic, assuming equal
+            variances the needed formulae are:
+          </p>
+<p>
+            <span class="inlinemediaobject"><img src="../../../../../equations/dist_tutorial1.png"></span>
+          </p>
+<p>
+            where Sp is the "pooled" standard deviation of the two samples,
+            and <span class="emphasis"><em>v</em></span> is the number of degrees of freedom of the
+            two combined samples. We can now write the code to calculate the t-statistic:
+          </p>
+<pre class="programlisting"><span class="comment">// Degrees of freedom:</span>
+<span class="keyword">double</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="identifier">Sn2</span> <span class="special">-</span> <span class="number">2</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Degrees of Freedom"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="comment">// Pooled variance:</span>
+<span class="keyword">double</span> <span class="identifier">sp</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(((</span><span class="identifier">Sn1</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">Sn2</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">v</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Pooled Standard Deviation"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">sp</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="comment">// t-statistic:</span>
+<span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">Sm1</span> <span class="special">-</span> <span class="identifier">Sm2</span><span class="special">)</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">sp</span> <span class="special">*</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="number">1.0</span> <span class="special">/</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="number">1.0</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">));</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"T Statistic"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">t_stat</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            The next step is to define our distribution object, and calculate the
+            complement of the probability:
+          </p>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t_stat</span><span class="special">)));</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Probability that difference is due to chance"</span> <span class="special"><<</span> <span class="string">"=  "</span>
+   <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">scientific</span> <span class="special"><<</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">q</span> <span class="special"><<</span> <span class="string">"\n\n"</span><span class="special">;</span>
+</pre>
+<p>
+            Here we've used the absolute value of the t-statistic, because we initially
+            want to know simply whether there is a difference or not (a two-sided
+            test). However, we can also test whether the mean of the second sample
+            is greater or is less (one-sided test) than that of the first: all the
+            possible tests are summed up in the following table:
+          </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                    <p>
+                      Hypothesis
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      Test
+                    </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                    <p>
+                      The Null-hypothesis: there is <span class="bold"><strong>no difference</strong></span>
+                      in means
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF for |t| < significance level
+                      / 2:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t</span><span class="special">)))</span>
+                      <span class="special"><</span> <span class="identifier">alpha</span>
+                      <span class="special">/</span> <span class="number">2</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: there is a <span class="bold"><strong>difference</strong></span>
+                      in means
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF for |t| > significance level
+                      / 2:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t</span><span class="special">)))</span>
+                      <span class="special"><</span> <span class="identifier">alpha</span>
+                      <span class="special">/</span> <span class="number">2</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: Sample 1 Mean is <span class="bold"><strong>less</strong></span>
+                      than Sample 2 Mean.
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if CDF of t > significance level:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">t</span><span class="special">)</span>
+                      <span class="special">></span> <span class="identifier">alpha</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      The Alternative-hypothesis: Sample 1 Mean is <span class="bold"><strong>greater</strong></span>
+                      than Sample 2 Mean.
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      Reject if complement of CDF of t > significance level:
+                    </p>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span>
+                      <span class="identifier">t</span><span class="special">))</span>
+                      <span class="special">></span> <span class="identifier">alpha</span></code>
+                    </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              For a two-sided test we must compare against alpha / 2 and not alpha.
+            </p></td></tr>
+</table></div>
+<p>
+            Most of the rest of the sample program is pretty-printing, so we'll skip
+            over that, and take a look at the sample output for alpha=0.05 (a 95%
+            probability level). For comparison the dataplot output for the same data
+            is in <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm" target="_top">section
+            1.3.5.3</a> of the <a href="http://www.itl.nist.gov/div898/handbook/" target="_top">NIST/SEMATECH
+            e-Handbook of Statistical Methods.</a>.
+          </p>
+<pre class="programlisting">   ________________________________________________
+   Student t test for two samples (equal variances)
+   ________________________________________________
+
+   Number of Observations (Sample 1)                      =  249
+   Sample 1 Mean                                          =  20.145
+   Sample 1 Standard Deviation                            =  6.4147
+   Number of Observations (Sample 2)                      =  79
+   Sample 2 Mean                                          =  30.481
+   Sample 2 Standard Deviation                            =  6.1077
+   Degrees of Freedom                                     =  326
+   Pooled Standard Deviation                              =  6.3426
+   T Statistic                                            =  -12.621
+   Probability that difference is due to chance           =  5.273e-030
+
+   Results for Alternative Hypothesis and alpha           =  0.0500
+
+   Alternative Hypothesis              Conclusion
+   Sample 1 Mean != Sample 2 Mean       NOT REJECTED
+   Sample 1 Mean <  Sample 2 Mean       NOT REJECTED
+   Sample 1 Mean >  Sample 2 Mean       REJECTED
+</pre>
+<p>
+            So with a probability that the difference is due to chance of just 5.273e-030,
+            we can safely conclude that there is indeed a difference.
+          </p>
+<p>
+            The tests on the alternative hypothesis show that we must also reject
+            the hypothesis that Sample 1 Mean is greater than that for Sample 2:
+            in this case Sample 1 represents the miles per gallon for Japanese cars,
+            and Sample 2 the miles per gallon for US cars, so we conclude that Japanese
+            cars are on average more fuel efficient.
+          </p>
+<p>
+            Now that we have the simple case out of the way, let's look for a moment
+            at the more complex one: that the standard deviations of the two samples
+            are not equal. In this case the formula for the t-statistic becomes:
+          </p>
+<p>
+            <span class="inlinemediaobject"><img src="../../../../../equations/dist_tutorial2.png"></span>
+          </p>
+<p>
+            And for the combined degrees of freedom we use the Welch-Satterthwaite
+            approximation:
+          </p>
+<p>
+            <span class="inlinemediaobject"><img src="../../../../../equations/dist_tutorial3.png"></span>
+          </p>
+<p>
+            Note that this is one of the rare situations where the degrees-of-freedom
+            parameter to the Student's t distribution is a real number, and not an
+            integer value.
+          </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+              Some statistical packages truncate the effective degrees of freedom
+              to an integer value: this may be necessary if you are relying on lookup
+              tables, but since our code fully supports non-integer degrees of freedom
+              there is no need to truncate in this case. Also note that when the
+              degrees of freedom is small then the Welch-Satterthwaite approximation
+              may be a significant source of error.
+            </p></td></tr>
+</table></div>
+<p>
+            Putting these formulae into code we get:
+          </p>
+<pre class="programlisting"><span class="comment">// Degrees of freedom:</span>
+<span class="keyword">double</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">/</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">;</span>
+<span class="identifier">v</span> <span class="special">*=</span> <span class="identifier">v</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">t1</span> <span class="special">=</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">/</span> <span class="identifier">Sn1</span><span class="special">;</span>
+<span class="identifier">t1</span> <span class="special">*=</span> <span class="identifier">t1</span><span class="special">;</span>
+<span class="identifier">t1</span> <span class="special">/=</span>  <span class="special">(</span><span class="identifier">Sn1</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+<span class="keyword">double</span> <span class="identifier">t2</span> <span class="special">=</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">;</span>
+<span class="identifier">t2</span> <span class="special">*=</span> <span class="identifier">t2</span><span class="special">;</span>
+<span class="identifier">t2</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">Sn2</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+<span class="identifier">v</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">t1</span> <span class="special">+</span> <span class="identifier">t2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"Degrees of Freedom"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">v</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+<span class="comment">// t-statistic:</span>
+<span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">Sm1</span> <span class="special">-</span> <span class="identifier">Sm2</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">/</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">);</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="string">"T Statistic"</span> <span class="special"><<</span> <span class="string">"=  "</span> <span class="special"><<</span> <span class="identifier">t_stat</span> <span class="special"><<</span> <span class="string">"\n"</span><span class="special">;</span>
+</pre>
+<p>
+            Thereafter the code and the tests are performed the same as before. Using
+            are car mileage data again, here's what the output looks like:
+          </p>
+<pre class="programlisting">   __________________________________________________
+   Student t test for two samples (unequal variances)
+   __________________________________________________
+
+   Number of Observations (Sample 1)                      =  249
+   Sample 1 Mean                                          =  20.145
+   Sample 1 Standard Deviation                            =  6.4147
+   Number of Observations (Sample 2)                      =  79
+   Sample 2 Mean                                          =  30.481
+   Sample 2 Standard Deviation                            =  6.1077
+   Degrees of Freedom                                     =  136.87
+   T Statistic                                            =  -12.946
+   Probability that difference is due to chance           =  1.571e-025
+
+   Results for Alternative Hypothesis and alpha           =  0.0500
+
+   Alternative Hypothesis              Conclusion
+   Sample 1 Mean != Sample 2 Mean       NOT REJECTED
+   Sample 1 Mean <  Sample 2 Mean       NOT REJECTED
+   Sample 1 Mean >  Sample 2 Mean       REJECTED
+</pre>
+<p>
+            This time allowing the variances in the two samples to differ has yielded
+            a higher likelihood that the observed difference is down to chance alone
+            (1.571e-025 compared to 5.273e-030 when equal variances were assumed).
+            However, the conclusion remains the same: US cars are less fuel efficient
+            than Japanese models.
+          </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tut_mean_size.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="paired_st.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/synopsis.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/synopsis.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,118 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Synopsis</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="header.html" title="Header File">
+<link rel="next" href="quat.html" title="Template Class quaternion">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="header.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="quat.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_synopsis">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.synopsis"></a><a class="link" href="synopsis.html" title="Synopsis">Synopsis</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <a class="link" href="quat.html" title="Template Class quaternion">quaternion</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="spec.html" title="Quaternion Specializations">quaternion<float></a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="spec.html#math_quaternion_double">quaternion<double></a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="spec.html#math_quaternion_long_double">quaternion<long double></a><span class="special">;</span>
+
+<span class="comment">// operators</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">operator +</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&<
/span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identi
fier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&am
p;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="ide
ntifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">
&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">operator /</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifie
r">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&<
/span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.unary_plus">operator +</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem.html#math_toolkit.non_mem.unary_minus">operator -</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">operator ==</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">operator !=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">>&</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.stream_extractor">operator >></a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <span class="id
entifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">>&</span> <span class="keyword">operator</span> <a class="link" href="non_mem.html#math_toolkit.non_mem.stream_inserter">operator <<</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="
keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="comment">// values</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <a class="link" href="value_op.html#math_toolkit.value_op.real_and_unreal">real</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="value_op.html#math_toolkit.value_op.real_and_unreal">unreal</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <a class="link" href="value_op.html#math_toolkit.value_op.sup">sup</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <a class="link" href="value_op.html#math_toolkit.value_op.l1">l1</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <a class="link" href="value_op.html#math_toolkit.value_op.abs">abs</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <a class="link" href="value_op.html#math_toolkit.value_op.norm">norm</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span><span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="value_op.html#math_toolkit.value_op.conj">conj</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="create.html#math_quaternions.creation_spherical">math_quaternions.creation_spherical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyw
ord">const</span> <span class="special">&</span> <span class="identifier">phi2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="create.html#math_quaternions.creation_semipolar">semipolar</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span 
class="special">&</span> <span class="identifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="create.html#math_quaternions.creation_multipolar">multipolar</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <spa
n class="special">&</span> <span class="identifier">theta2</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="create.html#math_quaternions.creation_cylindrospherical">cylindrospherical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">radius</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">longitude</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">c
onst</span> <span class="special">&</span> <span class="identifier">latitude</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="create.html#math_quaternions.creation_cylindrical">cylindrical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span cl
ass="special">&</span> <span class="identifier">h2</span><span class="special">);</span>
+
+<span class="comment">// transcendentals</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.exp">exp</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.cos">cos</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.sin">sin</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.tan">tan</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.cosh">cosh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.sinh">sinh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.tanh">tanh</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <a class="link" href="trans.html#math_toolkit.trans.pow">pow</a><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
+
+<span class="special">}</span> <span class="comment">// namespace math</span>
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="header.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="quat.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/synopsis0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/synopsis0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,131 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Synopsis</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="header0.html" title="Header File">
+<link rel="next" href="octonion.html" title="Template Class octonion">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="header0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="octonion.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_synopsis0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.synopsis0"></a><a class="link" href="synopsis0.html" title="Synopsis">Synopsis</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">class</span> <a class="link" href="octonion.html" title="Template Class octonion">octonion</a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="oct_specialization.html" title="Octonion Specializations">octonion<float></a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="oct_specialization.html#math_octonion_double">octonion<double></a><span class="special">;</span>
+<span class="keyword">template</span><span class="special"><></span>           <span class="keyword">class</span> <a class="link" href="oct_specialization.html#math_octonion_long_double">octonion<long double></a><span class="special">;</span>
+
+<span class="comment">// operators</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier"
>rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</s
pan> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">
const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">><
/span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_addition_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifi
er">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&
</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keywor
d">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">&g
t;</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_subtraction_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="ident
ifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&a
mp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="key
word">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special"
>></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_multiplication_operators">operator *</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier"
>rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</s
pan> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">
const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">><
/span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_division_operators">operator /</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.unary_plus_and_minus_operators">operator +</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.unary_plus_and_minus_operators">operator -</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">
);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs
</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_equality_operators">operator ==</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special
">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r
hs</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">bool</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.binary_inequality_operators">operator !=</a> <span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.stream_extractor">operator >></a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special
">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
+<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <a class="link" href="non_mem0.html#math_toolkit.non_mem0.stream_inserter">operator <<</a> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword"
>const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="comment">// values</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>           <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.real_and_unreal">real</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.real_and_unreal">unreal</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>           <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.sup">sup</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>           <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.l1">l1</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span><span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>           <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.abs">abs</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">T</span>           <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.norm">norm</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span><span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_value_ops.html#math_toolkit.oct_value_ops.conj">conj</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_create.html" title="Octonion Creation Functions">spherical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span c
lass="special">&</span> <span class="identifier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">phi6</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_create.html" title="Octonion Creation Functions">multipolar</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <spa
n class="special">&</span> <span class="identifier">theta2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">rho4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">theta4</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_create.html" title="Octonion Creation Functions">cylindrical</a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span cla
ss="special">&</span> <span class="identifier">h2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">h6</span><span class="special">);</span>
+
+<span class="comment">// transcendentals</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.exp">exp</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.cos">cos</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.sin">sin</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.tan">tan</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.cosh">cosh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.sinh">sinh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.tanh">tanh</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">);</span>
+
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span> <span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a class="link" href="oct_trans.html#math_toolkit.oct_trans.pow">pow</a><span class="special">(</span><span class="identifier">octonion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">o</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
+
+<span class="special">}</span>  <span class="special">}</span> <span class="comment">// namespaces</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="header0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="octonion.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/synopsis1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/synopsis1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Synopsis</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="next" href="gcd_function_object.html" title="GCD Function Object">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="gcd_function_object.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_synopsis1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.synopsis1"></a><a class="link" href="synopsis1.html" title="Synopsis">Synopsis</a>
+</h2></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">math</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+   <span class="keyword">class</span> <span class="identifier">gcd_evaluator</span><span class="special">;</span>
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+   <span class="keyword">class</span> <span class="identifier">lcm_evaluator</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+   <span class="identifier">IntegerType</span>  <span class="identifier">gcd</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">);</span>
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">></span>
+   <span class="identifier">IntegerType</span>  <span class="identifier">lcm</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">b</span> <span class="special">);</span>
+
+<span class="keyword">typedef</span> <span class="emphasis"><em>see-below</em></span> <span class="identifier">static_gcd_type</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value2</span> <span class="special">></span>
+   <span class="keyword">struct</span> <span class="identifier">static_gcd</span><span class="special">;</span>
+<span class="keyword">template</span> <span class="special"><</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_gcd_type</span> <span class="identifier">Value2</span> <span class="special">></span>
+   <span class="keyword">struct</span> <span class="identifier">static_lcm</span><span class="special">;</span>
+
+<span class="special">}</span>
+<span class="special">}</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../gcd_lcm.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="gcd_function_object.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tests.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tests.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Test Program</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="trans.html" title="Quaternion Transcendentals">
+<link rel="next" href="exp.html" title="The Quaternionic Exponential">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="trans.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="exp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tests">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tests"></a><a class="link" href="tests.html" title="Test Program">Test Program</a>
+</h2></div></div></div>
+<p>
+      The quaternion_test.cpp
+      test program tests quaternions specializations for float, double and long double
+      (sample output, with message
+      output enabled).
+    </p>
+<p>
+      If you define the symbol TEST_VERBOSE, you will get additional output (verbose output); this will
+      only be helpfull if you enable message output at the same time, of course (by
+      uncommenting the relevant line in the test or by adding <code class="literal">--log_level=messages</code>
+      to your command line,...). In that case, and if you are running interactively,
+      you may in addition define the symbol BOOST_INTERACTIVE_TEST_INPUT_ITERATOR
+      to interactively test the input operator with input of your choice from the
+      standard input (instead of hard-coding it in the test).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="trans.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="exp.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tests0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tests0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Test Program</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="oct_trans.html" title="Octonions Transcendentals">
+<link rel="next" href="acknowledgements.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="oct_trans.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tests0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tests0"></a><a class="link" href="tests0.html" title="Test Program">Test Program</a>
+</h2></div></div></div>
+<p>
+      The octonion_test.cpp
+      test program tests octonions specialisations for float, double and long double
+      (sample output).
+    </p>
+<p>
+      If you define the symbol BOOST_OCTONION_TEST_VERBOSE, you will get additional
+      output (verbose output);
+      this will only be helpfull if you enable message output at the same time, of
+      course (by uncommenting the relevant line in the test or by adding --log_level=messages
+      to your command line,...). In that case, and if you are running interactively,
+      you may in addition define the symbol BOOST_INTERACTIVE_TEST_INPUT_ITERATOR
+      to interactively test the input operator with input of your choice from the
+      standard input (instead of hard-coding it in the test).
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="oct_trans.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/threads.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/threads.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Thread Safety</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="pol_overview.html" title="Policies">
+<link rel="next" href="perf_over.html" title="Performance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="pol_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="perf_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_threads">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.threads"></a><a class="link" href="threads.html" title="Thread Safety">Thread Safety</a>
+</h2></div></div></div>
+<p>
+      The library is fully thread safe and re-entrant for all functions regards of
+      the data type they are instantiated on. Thread safety limitations relating
+      to user defined types present in previous releases (prior to 1.50.0) have been
+      removed.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="pol_overview.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="perf_over.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/todo.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/todo.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>To Do</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="history.html" title="History">
+<link rel="next" href="../octonions.html" title="Chapter 9. Octonions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../octonions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_todo">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.todo"></a><a class="link" href="todo.html" title="To Do">To Do</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Improve testing.
+        </li>
+<li class="listitem">
+          Rewrite input operatore using Spirit (creates a dependency).
+        </li>
+<li class="listitem">
+          Put in place an Expression Template mechanism (perhaps borrowing from uBlas).
+        </li>
+<li class="listitem">
+          Use uBlas for the link with rotations (and move from the example
+          implementation to an efficient one).
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../octonions.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/todo0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/todo0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>To Do</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../octonions.html" title="Chapter 9. Octonions">
+<link rel="prev" href="history0.html" title="History">
+<link rel="next" href="../gcd_lcm.html" title="Chapter 10. Integer Utilities (Greatest Common Divisor and Least Common Multiple)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="history0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../gcd_lcm.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_todo0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.todo0"></a><a class="link" href="todo0.html" title="To Do">To Do</a>
+</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          Improve testing.
+        </li>
+<li class="listitem">
+          Rewrite input operatore using Spirit (creates a dependency).
+        </li>
+<li class="listitem">
+          Put in place an Expression Template mechanism (perhaps borrowing from uBlas).
+        </li>
+</ul></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../octonions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../gcd_lcm.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tr1.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tr1.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,607 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>C99 and C++ TR1 C-style Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../overview.html" title="Chapter 1. Overview">
+<link rel="prev" href="history1.html" title="History and What's New">
+<link rel="next" href="faq.html" title="Frequently Asked Questions FAQ">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="history1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tr1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tr1"></a><a class="link" href="tr1.html" title="C99 and C++ TR1 C-style Functions">C99 and C++ TR1 C-style Functions</a>
+</h2></div></div></div>
+<p>
+      Many of the special functions included in this library are also a part of the
+      either the <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf" target="_top">C99
+      Standard ISO/IEC 9899:1999</a> or the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+      Report on C++ Library Extensions</a>. Therefore this library includes a
+      thin wrapper header <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span></code> that
+      provides compatibility with these two standards.
+    </p>
+<p>
+      There are various pros and cons to using the library in this way:
+    </p>
+<p>
+      Pros:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          The header to include is lightweight (i.e. fast to compile).
+        </li>
+<li class="listitem">
+          The functions have extern "C" linkage, and so are usable from
+          other languages (not just C and C++).
+        </li>
+<li class="listitem">
+          C99 and C++ TR1 Standard compatibility.
+        </li>
+</ul></div>
+<p>
+      Cons:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          You will need to compile and link to the external Boost.Math libraries.
+        </li>
+<li class="listitem">
+          Limited to support for the types, <code class="computeroutput"><span class="keyword">float</span></code>,
+          <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code>.
+        </li>
+<li class="listitem">
+          Error handling is handled via setting ::errno and returning NaN's and infinities:
+          this may be less flexible than an C++ exception based approach.
+        </li>
+</ul></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        The separate libraries are required <span class="bold"><strong>only</strong></span>
+        if you choose to use boost/math/tr1.hpp rather than some other Boost.Math
+        header, the rest of Boost.Math remains header-only.
+      </p></td></tr>
+</table></div>
+<p>
+      The separate libraries required in order to use tr1.hpp can be compiled using
+      bjam from within the libs/math/build directory, or from the Boost root directory
+      using the usual Boost-wide install procedure. Alternatively the source files
+      are located in libs/math/src and each have the same name as the function they
+      implement. The various libraries are named as follows:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Name
+              </p>
+            </th>
+<th>
+              <p>
+                Type
+              </p>
+            </th>
+<th>
+              <p>
+                Functions
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                boost_math_c99f-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                float
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_c99-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_c99l-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1f-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                float
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1l-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      Where <code class="computeroutput"><span class="special"><</span><span class="identifier">suffix</span><span class="special">></span></code> encodes the compiler and build options
+      used to build the libraries: for example "libboost_math_tr1-vc80-mt-gd.lib"
+      would be the statically linked TR1 library to use with Visual C++ 8.0, in multithreading
+      debug mode, with the DLL VC++ runtime, where as "boost_math_tr1-vc80-mt.lib"
+      would be import library for the TR1 DLL to be used with Visual C++ 8.0 with
+      the release multithreaded DLL VC++ runtime. Refer to the getting started guide
+      for a <a href="http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming" target="_top">full
+      explanation of the <code class="computeroutput"><span class="special"><</span><span class="identifier">suffix</span><span class="special">></span></code> meanings</a>.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+        Visual C++ users will typically have the correct library variant to link
+        against selected for them by boost/math/tr1.hpp based on your compiler settings.
+      </p>
+<p>
+        Users will need to define BOOST_MATH_TR1_DYN_LINK when building their code
+        if they want to link against the DLL versions of these libraries rather than
+        the static versions.
+      </p>
+<p>
+        Users can disable auto-linking by defining BOOST_MATH_TR1_NO_LIB when building:
+        this is typically only used when linking against a customised build of the
+        libraries.
+      </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Linux and Unix users will generally only have one variant of these libraries
+        installed, and can generally just link against -lboost_math_tr1 etc.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.tr1.h0"></a>
+      <span class="phrase"><a name="math_toolkit.tr1.usage_recomendations"></a></span><a class="link" href="tr1.html#math_toolkit.tr1.usage_recomendations">Usage
+      Recomendations</a>
+    </h5>
+<p>
+      This library now presents the user with a choice:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          To include the header only versions of the functions and have an easier
+          time linking, but a longer compile time.
+        </li>
+<li class="listitem">
+          To include the TR1 headers and link against an external library.
+        </li>
+</ul></div>
+<p>
+      Which option you choose depends largely on how you prefer to work and how your
+      system is set up.
+    </p>
+<p>
+      For example a casual user who just needs the acosh function, would probably
+      be better off including <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> and using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">acosh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> in their code.
+    </p>
+<p>
+      However, for large scale software development where compile times are significant,
+      and where the Boost libraries are already built and installed on the system,
+      then including <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> and using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">acosh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+      will speed up compile times, reduce object files sizes (since there are no
+      templates being instantiated any more), and also speed up debugging runtimes
+      - since the externally compiled libraries can be compiler optimised, rather
+      than built using full settings - the difference in performance between <a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">release and debug builds can be as much
+      as 20 times</a>, so for complex applications this can be a big win.
+    </p>
+<h5>
+<a name="math_toolkit.tr1.h1"></a>
+      <span class="phrase"><a name="math_toolkit.tr1.supported_c99_functions"></a></span><a class="link" href="tr1.html#math_toolkit.tr1.supported_c99_functions">Supported
+      C99 Functions</a>
+    </h5>
+<p>
+      See also the <a class="link" href="c99.html" title="C99 C Functions">quick reference guide for these
+      functions</a>.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">float_t</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">double_t</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">acoshf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">acoshl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">asinhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">asinhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">atanhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">atanhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cbrtf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cbrtl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">copysign</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">copysignf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">copysignl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erf</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erff</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erfc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erfcf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfcl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">expm1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expm1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expm1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmax</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaxf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmaxl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmin</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fminf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fminl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">hypot</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypotf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypotl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">lgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">lgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">log1p</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log1pf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log1pl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nextafter</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nextafterf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nextafterl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nexttoward</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nexttowardf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nexttowardl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">roundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">roundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">tgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">tgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">truncf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">truncl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.tr1.h2"></a>
+      <span class="phrase"><a name="math_toolkit.tr1.supported_tr1_functions"></a></span><a class="link" href="tr1.html#math_toolkit.tr1.supported_tr1_functions">Supported
+      TR1 Functions</a>
+    </h5>
+<p>
+      See also the <a class="link" href="tr1.html" title="C99 and C++ TR1 C-style Functions">quick reference guide for these
+      functions</a>.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.2] associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.3] beta function:</span>
+<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
+<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.15] exponential integral:</span>
+<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.16] Hermite polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.19] Legendre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.20] Riemann zeta function:</span>
+<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
+<span class="comment">// spherical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      In addition sufficient additional overloads of the <code class="computeroutput"><span class="keyword">double</span></code>
+      versions of the above functions are provided, so that calling the function
+      with any mixture of <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, or <span class="emphasis"><em>integer</em></span>
+      arguments is supported, with the return type determined by the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+      type calculation rules</em></span></a>.
+    </p>
+<h5>
+<a name="math_toolkit.tr1.h3"></a>
+      <span class="phrase"><a name="math_toolkit.tr1.currently_unsupported_c99_functi"></a></span><a class="link" href="tr1.html#math_toolkit.tr1.currently_unsupported_c99_functi">Currently
+      Unsupported C99 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">exp2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">exp2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">exp2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fdim</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fdimf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fdiml</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">z</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">z</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">int</span> <span class="identifier">ilogb</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">int</span> <span class="identifier">ilogbf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">int</span> <span class="identifier">ilogbl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">log2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">logb</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">logbf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">logbl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="identifier">lrint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lrintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lrintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nan</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nanf</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nanl</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nearbyint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nearbyintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nearbyintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">remainder</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">remainderf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">remainderl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">remquo</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">remquof</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">remquol</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">rint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">rintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">rintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">scalbln</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">scalblnf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">scalblnl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">scalbn</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">scalbnf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">scalbnl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.tr1.h4"></a>
+      <span class="phrase"><a name="math_toolkit.tr1.currently_unsupported_tr1_functi"></a></span><a class="link" href="tr1.html#math_toolkit.tr1.currently_unsupported_tr1_functi">Currently
+      Unsupported TR1 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="comment">// [5.2.1.7] confluent hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">conf_hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">conf_hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">conf_hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.17] hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="history1.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tr1_0.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tr1_0.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,607 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>C99 and TR1 C Functions Overview</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>
+<link rel="prev" href="../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>
+<link rel="next" href="c99.html" title="C99 C Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../extern_c.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="c99.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tr1_0">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tr1_0"></a><a class="link" href="tr1_0.html" title="C99 and TR1 C Functions Overview">C99 and TR1 C Functions Overview</a>
+</h2></div></div></div>
+<p>
+      Many of the special functions included in this library are also a part of the
+      either the <a href="http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf" target="_top">C99
+      Standard ISO/IEC 9899:1999</a> or the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+      Report on C++ Library Extensions</a>. Therefore this library includes a
+      thin wrapper header <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span></code> that
+      provides compatibility with these two standards.
+    </p>
+<p>
+      There are various pros and cons to using the library in this way:
+    </p>
+<p>
+      Pros:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          The header to include is lightweight (i.e. fast to compile).
+        </li>
+<li class="listitem">
+          The functions have extern "C" linkage, and so are usable from
+          other languages (not just C and C++).
+        </li>
+<li class="listitem">
+          C99 and C++ TR1 Standard compatibility.
+        </li>
+</ul></div>
+<p>
+      Cons:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          You will need to compile and link to the external Boost.Math libraries.
+        </li>
+<li class="listitem">
+          Limited to support for the types, <code class="computeroutput"><span class="keyword">float</span></code>,
+          <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
+          <span class="keyword">double</span></code>.
+        </li>
+<li class="listitem">
+          Error handling is handled via setting ::errno and returning NaN's and infinities:
+          this may be less flexible than an C++ exception based approach.
+        </li>
+</ul></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        The separate libraries are required <span class="bold"><strong>only</strong></span>
+        if you choose to use boost/math/tr1.hpp rather than some other Boost.Math
+        header, the rest of Boost.Math remains header-only.
+      </p></td></tr>
+</table></div>
+<p>
+      The separate libraries required in order to use tr1.hpp can be compiled using
+      bjam from within the libs/math/build directory, or from the Boost root directory
+      using the usual Boost-wide install procedure. Alternatively the source files
+      are located in libs/math/src and each have the same name as the function they
+      implement. The various libraries are named as follows:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Name
+              </p>
+            </th>
+<th>
+              <p>
+                Type
+              </p>
+            </th>
+<th>
+              <p>
+                Functions
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                boost_math_c99f-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                float
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_c99-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_c99l-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+<td>
+              <p>
+                C99 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1f-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                float
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                double
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                boost_math_tr1l-<suffix>
+              </p>
+            </td>
+<td>
+              <p>
+                long double
+              </p>
+            </td>
+<td>
+              <p>
+                TR1 Functions
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      Where <code class="computeroutput"><span class="special"><</span><span class="identifier">suffix</span><span class="special">></span></code> encodes the compiler and build options
+      used to build the libraries: for example "libboost_math_tr1-vc80-mt-gd.lib"
+      would be the statically linked TR1 library to use with Visual C++ 8.0, in multithreading
+      debug mode, with the DLL VC++ runtime, where as "boost_math_tr1-vc80-mt.lib"
+      would be import library for the TR1 DLL to be used with Visual C++ 8.0 with
+      the release multithreaded DLL VC++ runtime. Refer to the getting started guide
+      for a <a href="http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming" target="_top">full
+      explanation of the <code class="computeroutput"><span class="special"><</span><span class="identifier">suffix</span><span class="special">></span></code> meanings</a>.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+        Visual C++ users will typically have the correct library variant to link
+        against selected for them by boost/math/tr1.hpp based on your compiler settings.
+      </p>
+<p>
+        Users will need to define BOOST_MATH_TR1_DYN_LINK when building their code
+        if they want to link against the DLL versions of these libraries rather than
+        the static versions.
+      </p>
+<p>
+        Users can disable auto-linking by defining BOOST_MATH_TR1_NO_LIB when building:
+        this is typically only used when linking against a customised build of the
+        libraries.
+      </p>
+</td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Linux and Unix users will generally only have one variant of these libraries
+        installed, and can generally just link against -lboost_math_tr1 etc.
+      </p></td></tr>
+</table></div>
+<h5>
+<a name="math_toolkit.tr1_0.h0"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_0.usage_recomendations"></a></span><a class="link" href="tr1_0.html#math_toolkit.tr1_0.usage_recomendations">Usage
+      Recomendations</a>
+    </h5>
+<p>
+      This library now presents the user with a choice:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          To include the header only versions of the functions and have an easier
+          time linking, but a longer compile time.
+        </li>
+<li class="listitem">
+          To include the TR1 headers and link against an external library.
+        </li>
+</ul></div>
+<p>
+      Which option you choose depends largely on how you prefer to work and how your
+      system is set up.
+    </p>
+<p>
+      For example a casual user who just needs the acosh function, would probably
+      be better off including <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> and using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">acosh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> in their code.
+    </p>
+<p>
+      However, for large scale software development where compile times are significant,
+      and where the Boost libraries are already built and installed on the system,
+      then including <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tr1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> and using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">acosh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+      will speed up compile times, reduce object files sizes (since there are no
+      templates being instantiated any more), and also speed up debugging runtimes
+      - since the externally compiled libraries can be compiler optimised, rather
+      than built using full settings - the difference in performance between <a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">release and debug builds can be as much
+      as 20 times</a>, so for complex applications this can be a big win.
+    </p>
+<h5>
+<a name="math_toolkit.tr1_0.h1"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_0.supported_c99_functions"></a></span><a class="link" href="tr1_0.html#math_toolkit.tr1_0.supported_c99_functions">Supported
+      C99 Functions</a>
+    </h5>
+<p>
+      See also the <a class="link" href="c99.html" title="C99 C Functions">quick reference guide for these
+      functions</a>.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">float_t</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">double_t</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">acoshf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">acoshl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">asinhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">asinhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">atanhf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">atanhl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cbrtf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cbrtl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">copysign</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">copysignf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">copysignl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erf</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erff</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">erfc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">erfcf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">erfcl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">expm1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expm1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expm1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmax</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaxf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmaxl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fmin</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fminf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fminl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">hypot</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypotf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypotl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">lgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">lgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">log1p</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log1pf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log1pl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="identifier">lround</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lroundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nextafter</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nextafterf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nextafterl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nexttoward</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nexttowardf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nexttowardl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">round</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">roundf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">roundl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">tgammaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">tgammal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">trunc</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">truncf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">truncl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h5>
+<a name="math_toolkit.tr1_0.h2"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_0.supported_tr1_functions"></a></span><a class="link" href="tr1_0.html#math_toolkit.tr1_0.supported_tr1_functions">Supported
+      TR1 Functions</a>
+    </h5>
+<p>
+      See also the <a class="link" href="tr1.html" title="C99 and C++ TR1 C-style Functions">quick reference guide for these
+      functions</a>.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.2] associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.3] beta function:</span>
+<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
+<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.15] exponential integral:</span>
+<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.16] Hermite polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.19] Legendre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.20] Riemann zeta function:</span>
+<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
+<span class="comment">// spherical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      In addition sufficient additional overloads of the <code class="computeroutput"><span class="keyword">double</span></code>
+      versions of the above functions are provided, so that calling the function
+      with any mixture of <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, or <span class="emphasis"><em>integer</em></span>
+      arguments is supported, with the return type determined by the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+      type calculation rules</em></span></a>.
+    </p>
+<h5>
+<a name="math_toolkit.tr1_0.h3"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_0.currently_unsupported_c99_functi"></a></span><a class="link" href="tr1_0.html#math_toolkit.tr1_0.currently_unsupported_c99_functi">Currently
+      Unsupported C99 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">exp2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">exp2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">exp2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fdim</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fdimf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fdiml</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">fma</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">z</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">fmaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">z</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">fmal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">int</span> <span class="identifier">ilogb</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">int</span> <span class="identifier">ilogbf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">int</span> <span class="identifier">ilogbl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">llrintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">log2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">log2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">log2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">logb</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">logbf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">logbl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">long</span> <span class="identifier">lrint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lrintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="identifier">lrintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nan</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nanf</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nanl</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">str</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">nearbyint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">nearbyintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nearbyintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">remainder</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">remainderf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">remainderl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">remquo</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">remquof</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">remquol</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">int</span> <span class="special">*</span><span class="identifier">pquo</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">rint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">rintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">rintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">scalbln</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">scalblnf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">scalblnl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="identifier">ex</span><span class="special">);</span>
+
+<span class="keyword">double</span> <span class="identifier">scalbn</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">scalbnf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">scalbnl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">ex</span><span class="special">);</span>
+</pre>
+<h5>
+<a name="math_toolkit.tr1_0.h4"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_0.currently_unsupported_tr1_functi"></a></span><a class="link" href="tr1_0.html#math_toolkit.tr1_0.currently_unsupported_tr1_functi">Currently
+      Unsupported TR1 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="comment">// [5.2.1.7] confluent hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">conf_hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">conf_hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">conf_hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.17] hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../extern_c.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="c99.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tr1_ref.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tr1_ref.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,528 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>TR1 C Functions Quick Reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../extern_c.html" title='Chapter 5. TR1 and C99 external "C" Functions'>
+<link rel="prev" href="c99.html" title="C99 C Functions">
+<link rel="next" href="../constants.html" title="Chapter 6. Mathematical Constants">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="c99.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../constants.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tr1_ref">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tr1_ref"></a><a class="link" href="tr1_ref.html" title="TR1 C Functions Quick Reference">TR1 C Functions Quick Reference</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.tr1_ref.h0"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_ref.supported_tr1_functions"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.supported_tr1_functions">Supported
+      TR1 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
+
+<span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.2] associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.3] beta function:</span>
+<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
+<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.15] exponential integral:</span>
+<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.16] Hermite polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.19] Legendre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.20] Riemann zeta function:</span>
+<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
+<span class="comment">// spherical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+      In addition sufficient additional overloads of the <code class="computeroutput"><span class="keyword">double</span></code>
+      versions of the above functions are provided, so that calling the function
+      with any mixture of <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>, or <span class="emphasis"><em>integer</em></span>
+      arguments is supported, with the return type determined by the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+      type calculation rules</em></span></a>.
+    </p>
+<p>
+      For example:
+    </p>
+<pre class="programlisting"><span class="identifier">expintf</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>  <span class="comment">// float version, returns float.</span>
+<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>   <span class="comment">// also calls the float version and returns float.</span>
+<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0</span><span class="special">);</span>    <span class="comment">// double version, returns double.</span>
+<span class="identifier">expintl</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>  <span class="comment">// long double version, returns a long double.</span>
+<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>   <span class="comment">// also calls the long double version.</span>
+<span class="identifier">expint</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>      <span class="comment">// integer argument is treated as a double, returns double.</span>
+</pre>
+<h5>
+<a name="math_toolkit.tr1_ref.h1"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_ref.quick_reference"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.quick_reference">Quick
+      Reference</a>
+    </h5>
+<pre class="programlisting"><span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      The assoc_laguerre functions return:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/laguerre_1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials">laguerre</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.2] associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      The assoc_legendre functions return:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/legendre_1b.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/legendre.html" title="Legendre (and Associated) Polynomials">legendre_p</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.3] beta function:</span>
+<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the beta function of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/beta1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_beta/beta_function.html" title="Beta">beta</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the complete elliptic integral of the first kind of <span class="emphasis"><em>k</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint6.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">ellint_1</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the complete elliptic integral of the second kind of <span class="emphasis"><em>k</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint7.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">ellint_2</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the complete elliptic integral of the third kind of <span class="emphasis"><em>k</em></span>
+      and <span class="emphasis"><em>nu</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint8.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the modified bessel function of the first kind of <span class="emphasis"><em>nu</em></span>
+      and <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/mbessel2.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the bessel function of the first kind of <span class="emphasis"><em>nu</em></span> and
+      <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/bessel2.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
+<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the modified bessel function of the second kind of <span class="emphasis"><em>nu</em></span>
+      and <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/mbessel3.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
+<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the bessel function of the second kind (Neumann function) of <span class="emphasis"><em>nu</em></span>
+      and <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/bessel3.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the incomplete elliptic integral of the first kind of <span class="emphasis"><em>k</em></span>
+      and <span class="emphasis"><em>phi</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint2.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">ellint_1</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the incomplete elliptic integral of the second kind of <span class="emphasis"><em>k</em></span>
+      and <span class="emphasis"><em>phi</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint3.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">ellint_2</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
+<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the incomplete elliptic integral of the third kind of <span class="emphasis"><em>k</em></span>,
+      <span class="emphasis"><em>nu</em></span> and <span class="emphasis"><em>phi</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/ellint4.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.15] exponential integral:</span>
+<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the exponential integral Ei of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/expint_i_1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="expint/expint_i.html" title="Exponential Integral Ei">expint</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.16] Hermite polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the n'th Hermite polynomial of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/hermite_0.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/hermite.html" title="Hermite Polynomials">hermite</a> for the
+      full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the n'th Laguerre polynomial of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/laguerre_0.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials">laguerre</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.19] Legendre polynomials:</span>
+<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the l'th Legendre polynomial of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/legendre_0.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/legendre.html" title="Legendre (and Associated) Polynomials">legendre_p</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.20] Riemann zeta function:</span>
+<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the Riemann Zeta function of <span class="emphasis"><em>x</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/zeta1.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="zetas/zeta.html" title="Riemann Zeta Function">zeta</a> for the full template
+      (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the spherical Bessel function of the first kind of <span class="emphasis"><em>x</em></span>
+      j<sub>n</sub>(x):
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/sbessel2.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a> for
+      the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
+<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the spherical associated Legendre function of <span class="emphasis"><em>l</em></span>,
+      <span class="emphasis"><em>m</em></span> and <span class="emphasis"><em>theta</em></span>:
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/spherical_3.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="sf_poly/sph_harm.html" title="Spherical Harmonics">spherical_harmonic</a>
+      for the full template (header only) version of this function.
+    </p>
+<pre class="programlisting"><span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
+<span class="comment">// spherical Bessel functions (of the second kind):</span>
+<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<p>
+      Returns the spherical Neumann function of <span class="emphasis"><em>x</em></span> y<sub>n</sub>(x):
+    </p>
+<p>
+      <span class="inlinemediaobject"><img src="../../equations/sbessel2.png"></span>
+    </p>
+<p>
+      See also <a class="link" href="bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a> for
+      the full template (header only) version of this function.
+    </p>
+<h5>
+<a name="math_toolkit.tr1_ref.h2"></a>
+      <span class="phrase"><a name="math_toolkit.tr1_ref.currently_unsupported_tr1_functi"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.currently_unsupported_tr1_functi">Currently
+      Unsupported TR1 Functions</a>
+    </h5>
+<pre class="programlisting"><span class="comment">// [5.2.1.7] confluent hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">conf_hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">conf_hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">conf_hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+
+<span class="comment">// [5.2.1.17] hypergeometric functions:</span>
+<span class="keyword">double</span> <span class="identifier">hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">float</span> <span class="identifier">hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span>
+<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        These two functions are not implemented as they are not believed to be numerically
+        stable.
+      </p></td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="c99.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../constants.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/trans.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/trans.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,134 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Transcendentals</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="create.html" title="Quaternion Creation Functions">
+<link rel="next" href="tests.html" title="Test Program">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="create.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tests.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_trans">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.trans"></a><a class="link" href="trans.html" title="Quaternion Transcendentals">Quaternion Transcendentals</a>
+</h2></div></div></div>
+<p>
+      There is no <code class="computeroutput"><span class="identifier">log</span></code> or <code class="computeroutput"><span class="identifier">sqrt</span></code> provided for quaternions in this implementation,
+      and <code class="computeroutput"><span class="identifier">pow</span></code> is likewise restricted
+      to integral powers of the exponent. There are several reasons to this: on the
+      one hand, the equivalent of analytic continuation for quaternions ("branch
+      cuts") remains to be investigated thoroughly (by me, at any rate...),
+      and we wish to avoid the nonsense introduced in the standard by exponentiations
+      of complexes by complexes (which is well defined, but not in the standard...).
+      Talking of nonsense, saying that <code class="computeroutput"><span class="identifier">pow</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code> is "implementation
+      defined" is just plain brain-dead...
+    </p>
+<p>
+      We do, however provide several transcendentals, chief among which is the exponential.
+      This author claims the complete proof of the "closed formula" as
+      his own, as well as its independant invention (there are claims to prior invention
+      of the formula, such as one by Professor Shoemake, and it is possible that
+      the formula had been known a couple of centuries back, but in absence of bibliographical
+      reference, the matter is pending, awaiting further investigation; on the other
+      hand, the definition and existence of the exponential on the quaternions, is
+      of course a fact known for a very long time). Basically, any converging power
+      series with real coefficients which allows for a closed formula in <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> can be transposed to <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>. More transcendentals of this type could
+      be added in a further revision upon request. It should be noted that it is
+      these functions which force the dependency upon the boost/math/special_functions/sinc.hpp
+      and the boost/math/special_functions/sinhc.hpp
+      headers.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h0"></a>
+      <span class="phrase"><a name="math_toolkit.trans.exp"></a></span><a class="link" href="trans.html#math_toolkit.trans.exp">exp</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the exponential of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h1"></a>
+      <span class="phrase"><a name="math_toolkit.trans.cos"></a></span><a class="link" href="trans.html#math_toolkit.trans.cos">cos</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">cos</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the cosine of the quaternion
+    </p>
+<h5>
+<a name="math_toolkit.trans.h2"></a>
+      <span class="phrase"><a name="math_toolkit.trans.sin"></a></span><a class="link" href="trans.html#math_toolkit.trans.sin">sin</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">sin</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the sine of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h3"></a>
+      <span class="phrase"><a name="math_toolkit.trans.tan"></a></span><a class="link" href="trans.html#math_toolkit.trans.tan">tan</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">tan</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the tangent of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h4"></a>
+      <span class="phrase"><a name="math_toolkit.trans.cosh"></a></span><a class="link" href="trans.html#math_toolkit.trans.cosh">cosh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic cosine of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h5"></a>
+      <span class="phrase"><a name="math_toolkit.trans.sinh"></a></span><a class="link" href="trans.html#math_toolkit.trans.sinh">sinh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic sine of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h6"></a>
+      <span class="phrase"><a name="math_toolkit.trans.tanh"></a></span><a class="link" href="trans.html#math_toolkit.trans.tanh">tanh</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the hyperbolic tangent of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.trans.h7"></a>
+      <span class="phrase"><a name="math_toolkit.trans.pow"></a></span><a class="link" href="trans.html#math_toolkit.trans.pow">pow</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">pow</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
+</pre>
+<p>
+      Computes the n-th power of the quaternion q.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="create.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tests.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tuning.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tuning.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,885 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Performance Tuning Macros</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../perf.html" title="Chapter 14. Performance">
+<link rel="prev" href="comp_compilers.html" title="Comparing Compilers">
+<link rel="next" href="comparisons.html" title="Comparisons to Other Open Source Libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="comp_compilers.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comparisons.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tuning">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tuning"></a><a class="link" href="tuning.html" title="Performance Tuning Macros">Performance Tuning Macros</a>
+</h2></div></div></div>
+<p>
+      There are a small number of performance tuning options that are determined
+      by configuration macros. These should be set in boost/math/tools/user.hpp;
+      or else reported to the Boost-development mailing list so that the appropriate
+      option for a given compiler and OS platform can be set automatically in our
+      configuration setup.
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Macro
+              </p>
+            </th>
+<th>
+              <p>
+                Meaning
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                BOOST_MATH_POLY_METHOD
+              </p>
+            </td>
+<td>
+              <p>
+                Determines how polynomials and most rational functions are evaluated.
+                Define to one of the values 0, 1, 2 or 3: see below for the meaning
+                of these values.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                BOOST_MATH_RATIONAL_METHOD
+              </p>
+            </td>
+<td>
+              <p>
+                Determines how symmetrical rational functions are evaluated: mostly
+                this only effects how the Lanczos approximation is evaluated, and
+                how the <code class="computeroutput"><span class="identifier">evaluate_rational</span></code>
+                function behaves. Define to one of the values 0, 1, 2 or 3: see below
+                for the meaning of these values.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                BOOST_MATH_MAX_POLY_ORDER
+              </p>
+            </td>
+<td>
+              <p>
+                The maximum order of polynomial or rational function that will be
+                evaluated by a method other than 0 (a simple "for" loop).
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                BOOST_MATH_INT_TABLE_TYPE(RT, IT)
+              </p>
+            </td>
+<td>
+              <p>
+                Many of the coefficients to the polynomials and rational functions
+                used by this library are integers. Normally these are stored as tables
+                as integers, but if mixed integer / floating point arithmetic is
+                much slower than regular floating point arithmetic then they can
+                be stored as tables of floating point values instead. If mixed arithmetic
+                is slow then add:
+              </p>
+              <p>
+                #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
+              </p>
+              <p>
+                to boost/math/tools/user.hpp, otherwise the default of:
+              </p>
+              <p>
+                #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
+              </p>
+              <p>
+                Set in boost/math/config.hpp is fine, and may well result in smaller
+                code.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      The values to which <code class="computeroutput"><span class="identifier">BOOST_MATH_POLY_METHOD</span></code>
+      and <code class="computeroutput"><span class="identifier">BOOST_MATH_RATIONAL_METHOD</span></code>
+      may be set are as follows:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Value
+              </p>
+            </th>
+<th>
+              <p>
+                Effect
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                0
+              </p>
+            </td>
+<td>
+              <p>
+                The polynomial or rational function is evaluated using Horner's method,
+                and a simple for-loop.
+              </p>
+              <p>
+                Note that if the order of the polynomial or rational function is
+                a runtime parameter, or the order is greater than the value of <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>, then
+                this method is always used, irrespective of the value of <code class="computeroutput"><span class="identifier">BOOST_MATH_POLY_METHOD</span></code> or <code class="computeroutput"><span class="identifier">BOOST_MATH_RATIONAL_METHOD</span></code>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                1
+              </p>
+            </td>
+<td>
+              <p>
+                The polynomial or rational function is evaluated without the use
+                of a loop, and using Horner's method. This only occurs if the order
+                of the polynomial is known at compile time and is less than or equal
+                to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                2
+              </p>
+            </td>
+<td>
+              <p>
+                The polynomial or rational function is evaluated without the use
+                of a loop, and using a second order Horner's method. In theory this
+                permits two operations to occur in parallel for polynomials, and
+                four in parallel for rational functions. This only occurs if the
+                order of the polynomial is known at compile time and is less than
+                or equal to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>.
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                3
+              </p>
+            </td>
+<td>
+              <p>
+                The polynomial or rational function is evaluated without the use
+                of a loop, and using a second order Horner's method. In theory this
+                permits two operations to occur in parallel for polynomials, and
+                four in parallel for rational functions. This differs from method
+                "2" in that the code is carefully ordered to make the parallelisation
+                more obvious to the compiler: rather than relying on the compiler's
+                optimiser to spot the parallelisation opportunities. This only occurs
+                if the order of the polynomial is known at compile time and is less
+                than or equal to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>.
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+      To determine which of these options is best for your particular compiler/platform
+      build the performance test application with your usual release settings, and
+      run the program with the --tune command line option.
+    </p>
+<p>
+      In practice the difference between methods is rather small at present, as the
+      following table shows. However, parallelisation /vectorisation is likely to
+      become more important in the future: quite likely the methods currently supported
+      will need to be supplemented or replaced by ones more suited to highly vectorisable
+      processors in the future.
+    </p>
+<div class="table">
+<a name="math_toolkit.tuning.a_comparison_of_polynomial_evalu"></a><p class="title"><b>Table 14.3. A Comparison of Polynomial Evaluation Methods</b></p>
+<div class="table-contents"><table class="table" summary="A Comparison of Polynomial Evaluation Methods">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Compiler/platform
+              </p>
+            </th>
+<th>
+              <p>
+                Method 0
+              </p>
+            </th>
+<th>
+              <p>
+                Method 1
+              </p>
+            </th>
+<th>
+              <p>
+                Method 2
+              </p>
+            </th>
+<th>
+              <p>
+                Method 3
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                Microsoft C++ 9.0, Polynomial evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.26</p>
+<p> </p>
+<p>(7.421e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.22</p>
+<p> </p>
+<p>(7.226e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.901e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(6.115e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Microsoft C++ 9.0, Rational evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.008e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.008e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.43</p>
+<p> </p>
+<p>(1.445e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.40</p>
+<p> </p>
+<p>(1.409e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Intel C++ 11.1 (Windows), Polynomial evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.18</p>
+<p> </p>
+<p>(6.517e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.18</p>
+<p> </p>
+<p>(6.505e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.516e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.516e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Intel C++ 11.1 (Windows), Rational evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(8.947e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.02</p>
+<p> </p>
+<p>(9.130e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.49</p>
+<p> </p>
+<p>(1.333e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(9.325e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                GNU G++ 4.2 (Linux), Polynomial evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.61</p>
+<p> </p>
+<p>(1.220e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.68</p>
+<p> </p>
+<p>(1.269e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.23</p>
+<p> </p>
+<p>(9.275e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.566e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                GNU G++ 4.2 (Linux), Rational evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.26</p>
+<p> </p>
+<p>(1.660e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.33</p>
+<p> </p>
+<p>(1.758e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.318e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.15</p>
+<p> </p>
+<p>(1.513e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Intel C++ 10.0 (Linux), Polynomial evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.15</p>
+<p> </p>
+<p>(9.154e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.15</p>
+<p> </p>
+<p>(9.154e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.934e-008s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(7.934e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                Intel C++ 10.0 (Linux), Rational evaluation
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.245e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.245e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.35</p>
+<p> </p>
+<p>(1.684e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.04</p>
+<p> </p>
+<p>(1.294e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+      There is one final performance tuning option that is available as a compile
+      time <a class="link" href="../policy.html" title="Chapter 13. Policies">policy</a>. Normally when evaluating functions
+      at <code class="computeroutput"><span class="keyword">double</span></code> precision, these are
+      actually evaluated at <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      precision internally: this helps to ensure that as close to full <code class="computeroutput"><span class="keyword">double</span></code> precision as possible is achieved, but
+      may slow down execution in some environments. The defaults for this policy
+      can be changed by <a class="link" href="pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults">defining
+      the macro <code class="computeroutput"><span class="identifier">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></code></a>
+      to <code class="computeroutput"><span class="keyword">false</span></code>, or <a class="link" href="pol_ref/internal_promotion.html" title="Internal Floating-point Promotion Policies">by
+      specifying a specific policy</a> when calling the special functions or distributions.
+      See also the <a class="link" href="pol_tutorial.html" title="Policy Tutorial">policy tutorial</a>.
+    </p>
+<div class="table">
+<a name="math_toolkit.tuning.performance_comparison_with_and_"></a><p class="title"><b>Table 14.4. Performance Comparison with and Without Internal Promotion to long double</b></p>
+<div class="table-contents"><table class="table" summary="Performance Comparison with and Without Internal Promotion to long double">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                Function
+              </p>
+            </th>
+<th>
+              <p>
+                GCC 4.2 , Linux
+              </p>
+              <p>
+                (with internal promotion of double to long double).
+              </p>
+            </th>
+<th>
+              <p>
+                GCC 4.2, Linux
+              </p>
+              <p>
+                (without promotion of double).
+              </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_function.html" title="Error Functions">erf</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.48</p>
+<p> </p>
+<p>(1.387e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.377e-008s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.11</p>
+<p> </p>
+<p>(4.009e-007s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(3.598e-007s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
+                and <a class="link" href="sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.29</p>
+<p> </p>
+<p>(5.354e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(4.137e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.44</p>
+<p> </p>
+<p>(2.220e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(1.538e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>,
+                <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
+                and <a class="link" href="sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.25</p>
+<p> </p>
+<p>(7.009e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(5.607e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> and
+                <a class="link" href="sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.26</p>
+<p> </p>
+<p>(3.116e-006s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.464e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.27</p>
+<p> </p>
+<p>(1.178e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(9.291e-006s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a>
+                and <a class="link" href="sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p>1.20</p>
+<p> </p>
+<p>(2.765e-005s)</p>
+<p>
+              </p>
+            </td>
+<td>
+              <p>
+                </p>
+<p><span class="bold"><strong>1.00</strong></span></p>
+<p> </p>
+<p>(2.311e-005s)</p>
+<p>
+              </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="comp_compilers.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comparisons.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tutorial.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tutorial.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tutorial</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../constants.html" title="Chapter 6. Mathematical Constants">
+<link rel="prev" href="intro0.html" title="Introduction">
+<link rel="next" href="tutorial/non_templ.html" title="Use in non-template code">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="intro0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/non_templ.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tutorial">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.tutorial"></a><a class="link" href="tutorial.html" title="Tutorial">Tutorial</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="tutorial/non_templ.html">Use in non-template
+      code</a></span></dt>
+<dt><span class="section">Use in template code</span></dt>
+<dt><span class="section"><a href="tutorial/user_def.html">Use With User-Defined
+      Types</a></span></dt>
+</dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="intro0.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../constants.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial/non_templ.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tutorial/non_templ.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tutorial/non_templ.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Use in non-template code</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../tutorial.html" title="Tutorial">
+<link rel="prev" href="../tutorial.html" title="Tutorial">
+<link rel="next" href="templ.html" title="Use in template code">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="templ.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tutorial_non_templ">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.tutorial.non_templ"></a><a class="link" href="non_templ.html" title="Use in non-template code">Use in non-template
+      code</a>
+</h3></div></div></div>
+<p>
+        When using the math constants at your chosen fixed precision in non-template
+        code, you can simply add a <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span></code> declaration, for example, <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_constants</span></code>, to make the constants
+        of the correct precision for your code visible in the current scope, and
+        then use each constant <span class="emphasis"><em>as a simple variable - sans brackets</em></span>:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">double</span> <span class="identifier">area</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">r</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_constants</span><span class="special">;</span>
+   <span class="keyword">return</span> <span class="identifier">pi</span> <span class="special">*</span> <span class="identifier">r</span> <span class="special">*</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Had our function been written as taking a <code class="computeroutput"><span class="keyword">float</span></code>
+        rather than a <code class="computeroutput"><span class="keyword">double</span></code>, we could
+        have written instead:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">float</span> <span class="identifier">area</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">r</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">float_constants</span><span class="special">;</span>
+   <span class="keyword">return</span> <span class="identifier">pi</span> <span class="special">*</span> <span class="identifier">r</span> <span class="special">*</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Likewise, constants that are suitable for use at <code class="computeroutput"><span class="keyword">long</span>
+        <span class="keyword">double</span></code> precision are available in
+        the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">long_double_constants</span></code>.
+      </p>
+<p>
+        You can see the full list of available constants at <a class="link" href="../constants.html" title="The Mathematical Constants">math_toolkit.constants</a>.
+      </p>
+<p>
+        Some examples of using constants are at constants_eg1.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorial.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="templ.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tutorial/templ.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tutorial/templ.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Use in template code</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../tutorial.html" title="Tutorial">
+<link rel="prev" href="non_templ.html" title="Use in non-template code">
+<link rel="next" href="user_def.html" title="Use With User-Defined Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="non_templ.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="user_def.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tutorial_templ">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.tutorial.templ"></a><a class="link" href="templ.html" title="Use in template code">Use in template code</a>
+</h3></div></div></div>
+<p>
+        When using the constants inside a function template, we need to ensure that
+        we use a constant of the correct precision for our template parameters. We
+        can do this by calling the function-template versions, <code class="computeroutput"><span class="identifier">pi</span><span class="special"><</span><span class="identifier">FPType</span><span class="special">>()</span></code>, of the constants like this:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">></span>
+<span class="identifier">Real</span> <span class="identifier">area</span><span class="special">(</span><span class="identifier">Real</span> <span class="identifier">r</span><span class="special">)</span>
+<span class="special">{</span>
+   <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">;</span>
+   <span class="keyword">return</span> <span class="identifier">pi</span><span class="special"><</span><span class="identifier">Real</span><span class="special">>()</span> <span class="special">*</span> <span class="identifier">r</span> <span class="special">*</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        Although this syntax is a little less "cute" than the non-template
+        version, the code is no less efficient (at least for the built-in types
+        <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>
+        and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>)
+        : the function template versions of the constants are simple inline functions
+        that return a constant of the correct precision for the type used. In addition,
+        these functions are declared <code class="computeroutput"><span class="identifier">constexp</span></code>
+        for those compilers that support this, allowing the result to be used in
+        constant-expressions provided the template argument is a literal type.
+      </p>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Keep in mind the difference between the variable version, just <code class="computeroutput"><span class="identifier">pi</span></code>, and the template-function version:
+          the template-function requires both a <<em class="replaceable"><code>floating-point-type</code></em>>
+          and function call <code class="computeroutput"><span class="special">()</span></code> brackets,
+          for example: <code class="computeroutput"><span class="identifier">pi</span><span class="special"><</span><span class="keyword">double</span><span class="special">>()</span></code>.
+          You cannot write <code class="computeroutput"><span class="keyword">double</span> <span class="identifier">p</span>
+          <span class="special">=</span> <span class="identifier">pi</span><span class="special"><>()</span></code>, nor <code class="computeroutput"><span class="keyword">double</span>
+          <span class="identifier">p</span> <span class="special">=</span>
+          <span class="identifier">pi</span><span class="special">()</span></code>.
+        </p></td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          You can always use <span class="bold"><strong>both</strong></span> variable and template-function
+          versions <span class="bold"><strong>provided calls are fully qualified</strong></span>,
+          for example:
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">my_pi1</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="keyword">double</span><span class="special">>();</span>
+<span class="keyword">double</span> <span class="identifier">my_pi2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span>
+</pre>
+</td></tr>
+</table></div>
+<div class="warning"><table border="0" summary="Warning">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../images/warning.png"></td>
+<th align="left">Warning</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          It may be tempting to simply define
+        </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">double_constants</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">;</span>
+</pre>
+<p>
+          but if you do define two namespaces, this will, of course, create ambiguity!
+        </p>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">my_pi</span> <span class="special">=</span> <span class="identifier">pi</span><span class="special">();</span> <span class="comment">// error C2872: 'pi' : ambiguous symbol</span>
+<span class="keyword">double</span> <span class="identifier">my_pi2</span> <span class="special">=</span> <span class="identifier">pi</span><span class="special">;</span> <span class="comment">// Context does not allow for disambiguation of overloaded function</span>
+</pre>
+<p>
+          Although the mistake above is fairly obvious, it is also not too difficult
+          to do this accidentally, or worse, create it in someone elses code.
+        </p>
+<p>
+          Therefore is it prudent to avoid this risk by <span class="bold"><strong>localising
+          the scope of such definitions</strong></span>, as shown above.
+        </p>
+</td></tr>
+</table></div>
+<div class="tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+          Be very careful with the type provided as parameter. For example, providing
+          an <span class="bold"><strong>integer</strong></span> instead of a floating-point
+          type can be disastrous (a C++ feature).
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Area = "</span> <span class="special"><<</span> <span class="identifier">area</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Area = 12!!!</span></pre>
+<p>
+          You should get a compiler warning
+        </p>
+<pre class="programlisting">warning : 'return' : conversion from 'double' to 'int', possible loss of data
+</pre>
+<p>
+          Failure to heed this warning can lead to very wrong answers!
+        </p>
+<p>
+          You can also avoid this by being explicit about the type of <code class="computeroutput"><span class="identifier">Area</span></code>.
+        </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Area = "</span> <span class="special"><<</span> <span class="identifier">area</span><span class="special"><</span><span class="keyword">double</span><span class="special">>(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Area = 12.566371</span></pre>
+</td></tr>
+</table></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="non_templ.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="user_def.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/tutorial/user_def.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/tutorial/user_def.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,325 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Use With User-Defined Types</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../tutorial.html" title="Tutorial">
+<link rel="prev" href="templ.html" title="Use in template code">
+<link rel="next" href="../constants.html" title="The Mathematical Constants">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="templ.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../constants.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_tutorial_user_def">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.tutorial.user_def"></a><a class="link" href="user_def.html" title="Use With User-Defined Types">Use With User-Defined
+      Types</a>
+</h3></div></div></div>
+<p>
+        The most common example of a high-precision user-defined type will probably
+        be Boost.Multiprecision.
+      </p>
+<p>
+        The syntax for using the function-call constants with user-defined types
+        is the same as it is in the template class, which is to say we use:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">UserDefinedType</span><span class="special">>();</span>
+</pre>
+<p>
+        For example:
+      </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span><span class="special">>();</span>
+</pre>
+<p>
+        giving π with a precision of 50 decimal digits.
+      </p>
+<p>
+        However, since the precision of the user-defined type may be much greater
+        than that of the built-in floating point types, how the value returned is
+        created is as follows:
+      </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+            If the precision of the type is known at compile time:
+            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem">
+                  If the precision is less than or equal to that of a <code class="computeroutput"><span class="keyword">float</span></code> and the type is constructable
+                  from a <code class="computeroutput"><span class="keyword">float</span></code> then
+                  our code returns a <code class="computeroutput"><span class="keyword">float</span></code>
+                  literal. If the user-defined type is a literal type then the function
+                  call that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
+                </li>
+<li class="listitem">
+                  If the precision is less than or equal to that of a <code class="computeroutput"><span class="keyword">double</span></code> and the type is constructable
+                  from a <code class="computeroutput"><span class="keyword">double</span></code> then
+                  our code returns a <code class="computeroutput"><span class="keyword">double</span></code>
+                  literal. If the user-defined type is a literal type then the function
+                  call that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
+                </li>
+<li class="listitem">
+                  If the precision is less than or equal to that of a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+                  and the type is constructable from a <code class="computeroutput"><span class="keyword">long</span>
+                  <span class="keyword">double</span></code> then our code returns
+                  a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+                  literal. If the user-defined type is a literal type then the function
+                  call that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
+                </li>
+<li class="listitem">
+                  If the precision is less than or equal to that of a <code class="computeroutput"><span class="identifier">__float128</span></code> (and the compiler
+                  supports such a type) and the type is constructable from a <code class="computeroutput"><span class="identifier">__float128</span></code> then our code returns
+                  a <code class="computeroutput"><span class="identifier">__float128</span></code> literal.
+                  If the user-defined type is a literal type then the function call
+                  that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
+                </li>
+<li class="listitem">
+                  If the precision is less than 100 decimal digits, then the constant
+                  will be constructed (just the once, then cached in a thread-safe
+                  manner) from a string representation of the constant. In this case
+                  the value is returned as a const reference to the cached value.
+                </li>
+<li class="listitem">
+                  Otherwise the value is computed (just once, then cached in a thread-safe
+                  manner). In this case the value is returned as a const reference
+                  to the cached value.
+                </li>
+</ul></div>
+          </li>
+<li class="listitem">
+            If the precision is unknown at compile time then:
+            <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem">
+                  If the runtime precision (obtained from a call to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">digits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>()</span></code>)
+                  is less than 100 decimal digits, then the constant is constructed
+                  "on the fly" from the string representation of the constant.
+                </li>
+<li class="listitem">
+                  Otherwise the value is constructed "on the fly" by calculating
+                  then value of the constant using the current default precision
+                  of the type. Note that this can make use of the constants rather
+                  expensive.
+                </li>
+</ul></div>
+          </li>
+</ul></div>
+<p>
+        In addition, it is possible to pass a <code class="computeroutput"><span class="identifier">Policy</span></code>
+        type as a second template argument, and use this to control the precision:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special"><</span><span class="number">80</span><span class="special">></span> <span class="special">></span> <span class="identifier">my_policy_type</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special"><</span><span class="identifier">MyType</span><span class="special">,</span> <span class="identifier">my_policy_type</span><span class="special">>();</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+          Boost.Math doesn't know how to control the internal precision of <code class="computeroutput"><span class="identifier">MyType</span></code>, the policy just controls how
+          the selection process above is carried out, and the calculation precision
+          if the result is computed.
+        </p></td></tr>
+</table></div>
+<p>
+        It is also possible to control which method is used to construct the constant
+        by specialising the traits class <code class="computeroutput"><span class="identifier">construction_traits</span></code>:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">constant</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">construction_traits</span>
+<span class="special">{</span>
+   <span class="keyword">typedef</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="special">}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        Where <span class="emphasis"><em>N</em></span> takes one of the following values:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  <span class="emphasis"><em>N</em></span>
+                </p>
+              </th>
+<th>
+                <p>
+                  Meaning
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  0
+                </p>
+              </td>
+<td>
+                <p>
+                  The precision is unavailable at compile time; either construct
+                  from a decimal digit string or calculate on the fly depending upon
+                  the runtime precision.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  1
+                </p>
+              </td>
+<td>
+                <p>
+                  Return a float precision constant.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  2
+                </p>
+              </td>
+<td>
+                <p>
+                  Return a double precision constant.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  3
+                </p>
+              </td>
+<td>
+                <p>
+                  Return a long double precision constant.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  4
+                </p>
+              </td>
+<td>
+                <p>
+                  Construct the result from the string representation, and cache
+                  the result.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  Any other value <span class="emphasis"><em>N</em></span>
+                </p>
+              </td>
+<td>
+                <p>
+                  Sets the compile time precision to <span class="emphasis"><em>N</em></span> bits.
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<h6>
+<a name="math_toolkit.tutorial.user_def.h0"></a>
+        <span class="phrase"><a name="math_toolkit.tutorial.user_def.custom_specializing_a_constant"></a></span><a class="link" href="user_def.html#math_toolkit.tutorial.user_def.custom_specializing_a_constant">Custom
+        Specializing a constant</a>
+      </h6>
+<p>
+        In addition, for user-defined types that need special handling, it's possible
+        to [partially-] specialize the internal structure used by each constant.
+        For example, suppose we're using the C++ wrapper around MPFR <code class="computeroutput"><span class="identifier">mpfr_class</span></code>: this has its own representation
+        of Pi which we may well wish to use in place of the above mechanism. We can
+        achieve this by specialising the class template <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">constant_pi</span></code>:
+      </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">constants</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
+
+<span class="keyword">template</span><span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">constant_pi</span><span class="special"><</span><span class="identifier">mpfr_class</span><span class="special">></span>
+<span class="special">{</span>
+   <span class="keyword">template</span><span class="special"><</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">></span>
+   <span class="keyword">static</span> <span class="identifier">mpfr_class</span> <span class="identifier">get</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">>&)</span>
+   <span class="special">{</span>
+      <span class="comment">// The template param N is one of the values in the table above,</span>
+      <span class="comment">// we can either handle all cases in one as is the case here,</span>
+      <span class="comment">// or overload "get" for the different options.</span>
+      <span class="identifier">mpfr_class</span> <span class="identifier">result</span><span class="special">;</span>
+      <span class="identifier">mpfr_const_pi</span><span class="special">(</span><span class="identifier">result</span><span class="special">.</span><span class="identifier">get_mpfr_t</span><span class="special">(),</span> <span class="identifier">GMP_RNDN</span><span class="special">);</span>
+      <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+   <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="special">}}}}</span> <span class="comment">// namespaces</span>
+</pre>
+<h6>
+<a name="math_toolkit.tutorial.user_def.h1"></a>
+        <span class="phrase"><a name="math_toolkit.tutorial.user_def.diagnosing_what_meta_programmed_"></a></span><a class="link" href="user_def.html#math_toolkit.tutorial.user_def.diagnosing_what_meta_programmed_">Diagnosing
+        what meta-programmed code is doing</a>
+      </h6>
+<p>
+        Finally, since it can be tricky to diagnose what meta-programmed code is
+        doing, there is a diagnostic routine that prints information about how this
+        library will handle a specific type, it can be used like this:
+      </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">info</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">print_info_on_type</span><span class="special"><</span><span class="identifier">MyType</span><span class="special">>();</span>
+<span class="special">}</span>
+</pre>
+<p>
+        If you wish, you can also pass an optional std::ostream argument to the
+        <code class="computeroutput"><span class="identifier">print_info_on_type</span></code> function.
+        Typical output for a user-defined type looks like this:
+      </p>
+<pre class="programlisting">Information on the Implementation and Handling of
+Mathematical Constants for Type class boost::math::concepts::real_concept
+
+Checking for std::numeric_limits<class boost::math::concepts::real_concept> specialisation: no
+boost::math::policies::precision<class boost::math::concepts::real_concept, Policy>
+reports that there is no compile type precision available.
+boost::math::tools::digits<class boost::math::concepts::real_concept>()
+reports that the current runtime precision is
+53 binary digits.
+No compile time precision is available, the construction method
+will be decided at runtime and results will not be cached
+- this may lead to poor runtime performance.
+Current runtime precision indicates that
+the constant will be constructed from a string on each call.
+</pre>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="templ.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../constants.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/value_op.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/value_op.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Quaternion Value Operations</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../quaternions.html" title="Chapter 8. Quaternions">
+<link rel="prev" href="non_mem.html" title="Quaternion Non-Member Operators">
+<link rel="next" href="create.html" title="Quaternion Creation Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="non_mem.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="create.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_value_op">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.value_op"></a><a class="link" href="value_op.html" title="Quaternion Value Operations">Quaternion Value Operations</a>
+</h2></div></div></div>
+<h5>
+<a name="math_toolkit.value_op.h0"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.real_and_unreal"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.real_and_unreal">real
+      and unreal</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>              <span class="identifier">real</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      These return <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></code> and
+      <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">unreal</span><span class="special">()</span></code>
+      respectively.
+    </p>
+<h5>
+<a name="math_toolkit.value_op.h1"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.conj"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.conj">conj</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>  <span class="identifier">conj</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This returns the conjugate of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.value_op.h2"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.sup"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.sup">sup</a>
+    </h5>
+<p>
+      template<typename T> T sup(quaternion<T> const & q);
+    </p>
+<p>
+      This return the sup norm (the greatest among <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())...</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></code> of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.value_op.h3"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.l1"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.l1">l1</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>  <span class="identifier">l1</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This return the l1 norm <code class="computeroutput"><span class="special">(</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())+...+</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></code> of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.value_op.h4"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.abs"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.abs">abs</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>  <span class="identifier">abs</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This return the magnitude (Euclidian norm) of the quaternion.
+    </p>
+<h5>
+<a name="math_toolkit.value_op.h5"></a>
+      <span class="phrase"><a name="math_toolkit.value_op.norm"></a></span><a class="link" href="value_op.html#math_toolkit.value_op.norm">norm</a>
+    </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>	<span class="identifier">T</span>  <span class="identifier">norm</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span><span class="keyword">const</span>  <span class="special">&</span> <span class="identifier">q</span><span class="special">);</span>
+</pre>
+<p>
+      This return the (Cayley) norm of the quaternion. The term "norm"
+      might be confusing, as most people associate it with the Euclidian norm (and
+      quadratic functionals). For this version of (the mathematical objects known
+      as) quaternions, the Euclidian norm (also known as magnitude) is the square
+      root of the Cayley norm.
+    </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="non_mem.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../quaternions.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="create.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/zetas.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/zetas.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,37 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Zeta Functions</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Math Toolkit">
+<link rel="up" href="../special.html" title="Chapter 3. Special Functions">
+<link rel="prev" href="jacobi/jacobi_sn.html" title="Jacobi Elliptic Function sn">
+<link rel="next" href="zetas/zeta.html" title="Riemann Zeta Function">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi/jacobi_sn.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="zetas/zeta.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_zetas">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="math_toolkit.zetas"></a><a class="link" href="zetas.html" title="Zeta Functions">Zeta Functions</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc"><dt><span class="section">Riemann Zeta Function</span></dt></dl></div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="jacobi/jacobi_sn.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="zetas/zeta.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/math_toolkit/zetas/zeta.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/math_toolkit/zetas/zeta.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,302 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Riemann Zeta Function</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../zetas.html" title="Zeta Functions">
+<link rel="prev" href="../zetas.html" title="Zeta Functions">
+<link rel="next" href="../expint.html" title="Exponential Integrals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="../zetas.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../zetas.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../expint.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section  math_toolkit_zetas_zeta">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.zetas.zeta"></a><a class="link" href="zeta.html" title="Riemann Zeta Function">Riemann Zeta Function</a>
+</h3></div></div></div>
+<h5>
+<a name="math_toolkit.zetas.zeta.h0"></a>
+        <span class="phrase"><a name="math_toolkit.zetas.zeta.synopsis"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.synopsis">Synopsis</a>
+      </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">zeta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">zeta</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">zeta</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+
+<span class="special">}}</span> <span class="comment">// namespaces</span>
+</pre>
+<p>
+        The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
+        type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
+      </p>
+<p>
+        The final <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a> argument is optional and can
+        be used to control the behaviour of the function: how it handles errors,
+        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 13. Policies">policy
+        documentation for more details</a>.
+      </p>
+<h5>
+<a name="math_toolkit.zetas.zeta.h1"></a>
+        <span class="phrase"><a name="math_toolkit.zetas.zeta.description"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.description">Description</a>
+      </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">zeta</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">></span>
+<a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">zeta</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 13. Policies">Policy</a><span class="special">&);</span>
+</pre>
+<p>
+        Returns the <a href="http://mathworld.wolfram.com/RiemannZetaFunction.html" target="_top">zeta
+        function</a> of z:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/zeta1.png"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/zeta1.png" align="middle"></span>
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../graphs/zeta2.png" align="middle"></span>
+      </p>
+<h5>
+<a name="math_toolkit.zetas.zeta.h2"></a>
+        <span class="phrase"><a name="math_toolkit.zetas.zeta.accuracy"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.accuracy">Accuracy</a>
+      </h5>
+<p>
+        The following table shows the peak errors (in units of epsilon) found on
+        various platforms with various floating point types, along with comparisons
+        to the GSL-1.9 and
+        Cephes libraries. Unless
+        otherwise specified any floating point type that is narrower than the one
+        shown will have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
+        zero error</a>.
+      </p>
+<div class="table">
+<a name="math_toolkit.zetas.zeta.errors_in_the_function_zeta_z"></a><p class="title"><b>Table 3.30. Errors In the Function zeta(z)</b></p>
+<div class="table-contents"><table class="table" summary="Errors In the Function zeta(z)">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                <p>
+                  Significand Size
+                </p>
+              </th>
+<th>
+                <p>
+                  Platform and Compiler
+                </p>
+              </th>
+<th>
+                <p>
+                  z > 0
+                </p>
+              </th>
+<th>
+                <p>
+                  z < 0
+                </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                <p>
+                  53
+                </p>
+              </td>
+<td>
+                <p>
+                  Win32, Visual C++ 8
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.1
+                </p>
+                <p>
+                  GSL Peak=8.7 Mean=1.0
+                </p>
+                <p>
+                  Cephes Peak=2.1
+                  Mean=1.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=7.1 Mean=3.0
+                </p>
+                <p>
+                  GSL Peak=137 Mean=14
+                </p>
+                <p>
+                  Cephes Peak=5084
+                  Mean=470
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  RedHat Linux IA_EM64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=570 Mean=60
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  64
+                </p>
+              </td>
+<td>
+                <p>
+                  Redhat Linux IA64, gcc-4.1
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=0.99 Mean=0.5
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=559 Mean=56
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  113
+                </p>
+              </td>
+<td>
+                <p>
+                  HPUX IA64, aCC A.06.06
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1.0 Mean=0.4
+                </p>
+              </td>
+<td>
+                <p>
+                  Peak=1018 Mean=79
+                </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><h5>
+<a name="math_toolkit.zetas.zeta.h3"></a>
+        <span class="phrase"><a name="math_toolkit.zetas.zeta.testing"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.testing">Testing</a>
+      </h5>
+<p>
+        The tests for these functions come in two parts: basic sanity checks use
+        spot values calculated using <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=Zeta" target="_top">Mathworld's
+        online evaluator</a>, while accuracy checks use high-precision test values
+        calculated at 1000-bit precision with NTL::RR
+        and this implementation. Note that the generic and type-specific versions
+        of these functions use differing implementations internally, so this gives
+        us reasonably independent test data. Using our test data to test other "known
+        good" implementations also provides an additional sanity check.
+      </p>
+<h5>
+<a name="math_toolkit.zetas.zeta.h4"></a>
+        <span class="phrase"><a name="math_toolkit.zetas.zeta.implementation"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.implementation">Implementation</a>
+      </h5>
+<p>
+        All versions of these functions first use the usual reflection formulas to
+        make their arguments positive:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/zeta3.png"></span>
+      </p>
+<p>
+        The generic versions of these functions are implemented using the series:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/zeta6.png"></span>
+      </p>
+<p>
+        When the significand (mantissa) size is recognised (currently for 53, 64
+        and 113-bit reals, plus single-precision 24-bit handled via promotion to
+        double) then a series of rational approximations <a class="link" href="../implementation0.html#math_toolkit.implementation0.rational_approximations_used">devised
+        by JM</a> are used.
+      </p>
+<p>
+        For 0 < z < 1 the approximating form is:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/zeta4.png"></span>
+      </p>
+<p>
+        For a rational approximation R(1-z) and a constant C.
+      </p>
+<p>
+        For 1 < z < 4 the approximating form is:
+      </p>
+<p>
+        <span class="inlinemediaobject"><img src="../../../equations/zeta5.png"></span>
+      </p>
+<p>
+        For a rational approximation R(n-z) and a constant C and integer n.
+      </p>
+<p>
+        For z > 4 the approximating form is:
+      </p>
+<p>
+        ζ(z) = 1 + e<sup>R(z - n)</sup>
+      </p>
+<p>
+        For a rational approximation R(z-n) and integer n, note that the accuracy
+        required for R(z-n) is not full machine precision, but an absolute error
+        of: ε/R(0). This saves us quite a few digits when dealing with large z, especially
+        when ε is small.
+      </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../zetas.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../zetas.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../expint.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/octonions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/octonions.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 9. Octonions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/todo.html" title="To Do">
+<link rel="next" href="math_toolkit/overview0.html" title="Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/todo.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/overview0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="octonions"></a>Chapter 9. Octonions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Header File</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">Template Class octonion</span></dt>
+<dt><span class="section">Octonion Specializations</span></dt>
+<dt><span class="section">Octonion Member Typedefs</span></dt>
+<dt><span class="section">Octonion Member Functions</span></dt>
+<dt><span class="section">Octonion Non-Member Operators</span></dt>
+<dt><span class="section">Octonion Value Operations</span></dt>
+<dt><span class="section">Octonion Creation Functions</span></dt>
+<dt><span class="section">Octonions Transcendentals</span></dt>
+<dt><span class="section">Test Program</span></dt>
+<dt><span class="section">Acknowledgements</span></dt>
+<dt><span class="section">History</span></dt>
+<dt><span class="section">To Do</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/todo.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/overview0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/overview.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/overview.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 1. Overview</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="index.html" title="Math Toolkit">
+<link rel="next" href="math_toolkit/intro.html" title="About the Math Toolkit">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/intro.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="overview"></a>Chapter 1. Overview</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">About the Math Toolkit</span></dt>
+<dt><span class="section">Navigation</span></dt>
+<dt><span class="section">Document Conventions</span></dt>
+<dt><span class="section">Other Hints and tips</span></dt>
+<dt><span class="section">Directory and File Structure</span></dt>
+<dt><span class="section">Namespaces</span></dt>
+<dt><span class="section"><a href="math_toolkit/result_type.html">Calculation of the Type of the
+    Result</a></span></dt>
+<dt><span class="section">Error Handling</span></dt>
+<dt><span class="section">Compilers</span></dt>
+<dt><span class="section">Configuration Macros</span></dt>
+<dt><span class="section">Policies</span></dt>
+<dt><span class="section">Thread Safety</span></dt>
+<dt><span class="section">Performance</span></dt>
+<dt><span class="section"><a href="math_toolkit/building.html">If and How to Build a Boost.Math
+    Library, and its Examples and Tests</a></span></dt>
+<dt><span class="section">History and What's New</span></dt>
+<dt><span class="section">C99 and C++ TR1 C-style Functions</span></dt>
+<dt><span class="section">Frequently Asked Questions FAQ</span></dt>
+<dt><span class="section">Contact Info and Support</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/intro.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/perf.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/perf.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 14. Performance</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/pol_ref/pol_ref_ref.html" title="Policy Class Reference">
+<link rel="next" href="math_toolkit/perf_over0.html" title="Performance Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/pol_ref/pol_ref_ref.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/perf_over0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="perf"></a>Chapter 14. Performance</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Performance Overview</span></dt>
+<dt><span class="section">Interpreting these Results</span></dt>
+<dt><span class="section"><a href="math_toolkit/getting_best.html">Getting the Best Performance
+    from this Library</a></span></dt>
+<dt><span class="section">Comparing Compilers</span></dt>
+<dt><span class="section">Performance Tuning Macros</span></dt>
+<dt><span class="section"><a href="math_toolkit/comparisons.html">Comparisons to Other Open Source
+    Libraries</a></span></dt>
+<dt><span class="section">The Performance Test Application</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/pol_ref/pol_ref_ref.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/perf_over0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/policy.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/policy.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,81 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 13. Policies</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/archetypes.html" title="Conceptual Archetypes for Reals and Distributions">
+<link rel="next" href="math_toolkit/pol_overview0.html" title="Policy Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/archetypes.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/pol_overview0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="policy"></a>Chapter 13. Policies</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Policy Overview</span></dt>
+<dt><span class="section">Policy Tutorial</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/what_is_a_policy.html">So Just What
+      is a Policy Anyway?</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/policy_tut_defaults.html">Policies
+      Have Sensible Defaults</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/policy_usage.html">So How are Policies
+      Used Anyway?</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/changing_policy_defaults.html">Changing
+      the Policy Defaults</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/ad_hoc_dist_policies.html">Setting
+      Policies for Distributions on an Ad Hoc Basis</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/ad_hoc_sf_policies.html">Changing
+      the Policy on an Ad Hoc Basis for the Special Functions</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/namespace_policies.html">Setting
+      Policies at Namespace or Translation Unit Scope</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/user_def_err_pol.html">Calling User
+      Defined Error Handlers</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_tutorial/understand_dis_quant.html">Understanding
+      Quantiles of Discrete Distributions</a></span></dt>
+</dl></dd>
+<dt><span class="section">Policy Reference</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/pol_ref/error_handling_policies.html">Error Handling
+      Policies</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/internal_promotion.html">Internal Floating-point
+      Promotion Policies</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/assert_undefined.html">Mathematically
+      Undefined Function Policies</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/discrete_quant_ref.html">Discrete Quantile
+      Policies</a></span></dt>
+<dt><span class="section">Precision Policies</span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/iteration_pol.html">Iteration Limits
+      Policies</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/policy_defaults.html">Using Macros to
+      Change the Policy Defaults</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/pol_ref/namespace_pol.html">Setting Polices at
+      Namespace Scope</a></span></dt>
+<dt><span class="section">Policy Class Reference</span></dt>
+</dl></dd>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/archetypes.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/pol_overview0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/pr01.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/pr01.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,38 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title></title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="index.html" title="Math Toolkit">
+<link rel="next" href="overview.html" title="Chapter 1. Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="preface">
+<div class="titlepage"></div>
+<p>
+This manual is also available in <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">printer
+  friendly PDF format</a>, and as a CD ISBN 0-9504833-2-X 978-0-9504833-2-0,
+  Classification 519.2-dc22. </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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="index.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/quaternions.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/quaternions.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 8. Quaternions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/history2.html" title="History">
+<link rel="next" href="math_toolkit/overview.html" title="Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/history2.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="quaternions"></a>Chapter 8. Quaternions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Header File</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">Template Class quaternion</span></dt>
+<dt><span class="section">Quaternion Specializations</span></dt>
+<dt><span class="section">Quaternion Member Typedefs</span></dt>
+<dt><span class="section">Quaternion Member Functions</span></dt>
+<dt><span class="section">Quaternion Non-Member Operators</span></dt>
+<dt><span class="section">Quaternion Value Operations</span></dt>
+<dt><span class="section">Quaternion Creation Functions</span></dt>
+<dt><span class="section">Quaternion Transcendentals</span></dt>
+<dt><span class="section">Test Program</span></dt>
+<dt><span class="section">The Quaternionic Exponential</span></dt>
+<dt><span class="section">Acknowledgements</span></dt>
+<dt><span class="section">History</span></dt>
+<dt><span class="section">To Do</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/history2.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/special.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/special.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,189 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 3. Special Functions</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/future.html" title="Extras/Future Directions">
+<link rel="next" href="math_toolkit/sf_gamma.html" title="Gamma Functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/future.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/sf_gamma.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="special"></a>Chapter 3. Special Functions</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Gamma Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Gamma</span></dt>
+<dt><span class="section">Log Gamma</span></dt>
+<dt><span class="section">Digamma</span></dt>
+<dt><span class="section">Ratios of Gamma Functions</span></dt>
+<dt><span class="section">Incomplete Gamma Functions</span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_gamma/igamma_inv.html">Incomplete Gamma Function
+      Inverses</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_gamma/gamma_derivatives.html">Derivative of
+      the Incomplete Gamma Function</a></span></dt>
+</dl></dd>
+<dt><span class="section">Factorials and Binomial Coefficients</span></dt>
+<dd><dl>
+<dt><span class="section">Factorial</span></dt>
+<dt><span class="section">Double Factorial</span></dt>
+<dt><span class="section">Rising Factorial</span></dt>
+<dt><span class="section"><a href="math_toolkit/factorials/sf_falling_factorial.html">Falling
+      Factorial</a></span></dt>
+<dt><span class="section">Binomial Coefficients</span></dt>
+</dl></dd>
+<dt><span class="section">Beta Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Beta</span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_beta/ibeta_function.html">Incomplete Beta
+      Functions</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_beta/ibeta_inv_function.html">The Incomplete
+      Beta Function Inverses</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_beta/beta_derivative.html">Derivative of the
+      Incomplete Beta Function</a></span></dt>
+</dl></dd>
+<dt><span class="section">Error Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Error Functions</span></dt>
+<dt><span class="section">Error Function Inverses</span></dt>
+</dl></dd>
+<dt><span class="section">Polynomials</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/sf_poly/legendre.html">Legendre (and Associated)
+      Polynomials</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/sf_poly/laguerre.html">Laguerre (and Associated)
+      Polynomials</a></span></dt>
+<dt><span class="section">Hermite Polynomials</span></dt>
+<dt><span class="section">Spherical Harmonics</span></dt>
+</dl></dd>
+<dt><span class="section">Bessel Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Bessel Function Overview</span></dt>
+<dt><span class="section"><a href="math_toolkit/bessel/bessel.html">Bessel Functions of the First
+      and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/bessel/bessel0.html">Finding Zeros of Bessel
+      Functions of the First and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/bessel/mbessel.html">Modified Bessel Functions
+      of the First and Second Kinds</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/bessel/sph_bessel.html">Spherical Bessel Functions
+      of the First and Second Kinds</a></span></dt>
+</dl></dd>
+<dt><span class="section">Hankel Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Cyclic Hankel Functions</span></dt>
+<dt><span class="section">Spherical Hankel Functions</span></dt>
+</dl></dd>
+<dt><span class="section">Airy Functions</span></dt>
+<dd><dl>
+<dt><span class="section">Airy Ai Function</span></dt>
+<dt><span class="section">Airy Bi Function</span></dt>
+<dt><span class="section">Airy Ai' Function</span></dt>
+<dt><span class="section">Airy Bi' Function</span></dt>
+</dl></dd>
+<dt><span class="section">Elliptic Integrals</span></dt>
+<dd><dl>
+<dt><span class="section">Elliptic Integral Overview</span></dt>
+<dt><span class="section"><a href="math_toolkit/ellint/ellint_carlson.html">Elliptic Integrals
+      - Carlson Form</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/ellint/ellint_1.html">Elliptic Integrals of the
+      First Kind - Legendre Form</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/ellint/ellint_2.html">Elliptic Integrals of the
+      Second Kind - Legendre Form</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/ellint/ellint_3.html">Elliptic Integrals of the
+      Third Kind - Legendre Form</a></span></dt>
+</dl></dd>
+<dt><span class="section">Jacobi Elliptic Functions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/jacobi/jac_over.html">Overvew of the Jacobi Elliptic
+      Functions</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_elliptic.html">Jacobi Elliptic
+      SN, CN and DN</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_cd.html">Jacobi Elliptic Function
+      cd</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_cn.html">Jacobi Elliptic Function
+      cn</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_cs.html">Jacobi Elliptic Function
+      cs</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_dc.html">Jacobi Elliptic Function
+      dc</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_dn.html">Jacobi Elliptic Function
+      dn</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_ds.html">Jacobi Elliptic Function
+      ds</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_nc.html">Jacobi Elliptic Function
+      nc</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_nd.html">Jacobi Elliptic Function
+      nd</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_ns.html">Jacobi Elliptic Function
+      ns</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_sc.html">Jacobi Elliptic Function
+      sc</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_sd.html">Jacobi Elliptic Function
+      sd</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/jacobi/jacobi_sn.html">Jacobi Elliptic Function
+      sn</a></span></dt>
+</dl></dd>
+<dt><span class="section">Zeta Functions</span></dt>
+<dd><dl><dt><span class="section">Riemann Zeta Function</span></dt></dl></dd>
+<dt><span class="section">Exponential Integrals</span></dt>
+<dd><dl>
+<dt><span class="section">Exponential Integral En</span></dt>
+<dt><span class="section">Exponential Integral Ei</span></dt>
+</dl></dd>
+<dt><span class="section">Basic Functions</span></dt>
+<dd><dl>
+<dt><span class="section">sin_pi</span></dt>
+<dt><span class="section">cos_pi</span></dt>
+<dt><span class="section">log1p</span></dt>
+<dt><span class="section">expm1</span></dt>
+<dt><span class="section">cbrt</span></dt>
+<dt><span class="section">sqrt1pm1</span></dt>
+<dt><span class="section">powm1</span></dt>
+<dt><span class="section">hypot</span></dt>
+<dt><span class="section"><a href="math_toolkit/powers/ct_pow.html">Compile Time Power of a Runtime
+      Base</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/sinc.html">Sinus Cardinal and Hyperbolic Sinus
+    Cardinal Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/sinc/sinc_overview.html">Sinus Cardinal and Hyperbolic
+      Sinus Cardinal Functions Overview</a></span></dt>
+<dt><span class="section">sinc_pi</span></dt>
+<dt><span class="section">sinhc_pi</span></dt>
+</dl></dd>
+<dt><span class="section">Inverse Hyperbolic Functions</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/inv_hyper/inv_hyper_over.html">Inverse Hyperbolic
+      Functions Overview</a></span></dt>
+<dt><span class="section">acosh</span></dt>
+<dt><span class="section">asinh</span></dt>
+<dt><span class="section">atanh</span></dt>
+</dl></dd>
+<dt><span class="section">Owen's T function</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/future.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/sf_gamma.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/status.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/status.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,43 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 16. Library Status</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/refs.html" title="References">
+<link rel="next" href="math_toolkit/history1_0.html" title="History and What's New">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/refs.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/history1_0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="status"></a>Chapter 16. Library Status</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">History and What's New</span></dt>
+<dt><span class="section">Known Issues, and TODO List</span></dt>
+<dt><span class="section">Credits and Acknowledgements</span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/refs.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/history1_0.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/toolkit.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/toolkit.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 11. Internals and Internal Details</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/credits0.html" title="Credits">
+<link rel="next" href="math_toolkit/internals_overview.html" title="Overview">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/credits0.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/internals_overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="toolkit"></a>Chapter 11. Internals and Internal Details</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Utilities & internals</span></dt>
+<dd><dl>
+<dt><span class="section">Series Evaluation</span></dt>
+<dt><span class="section">Continued Fraction Evaluation</span></dt>
+<dt><span class="section"><a href="math_toolkit/internals1/rational.html">Polynomial and Rational
+      Function Evaluation</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/internals1/roots.html">Root Finding With Derivatives:
+      Newton-Raphson, Halley & Schroeder</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/internals1/roots2.html">Root Finding Without
+      Derivatives: Bisection, Bracket and TOMS748</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/internals1/minima.html">Locating Function Minima:
+      Brent's algorithm</a></span></dt>
+<dt><span class="section">Tuples</span></dt>
+</dl></dd>
+<dt><span class="section">Testing and Development</span></dt>
+<dd><dl>
+<dt><span class="section">Polynomials</span></dt>
+<dt><span class="section"><a href="math_toolkit/internals2/minimax.html">Minimax Approximations
+      and the Remez Algorithm</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/internals2/error_test.html">Relative Error and
+      Testing</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/internals2/test_data.html">Graphing, Profiling,
+      and Generating Test Data for Special Functions</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/credits0.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/internals_overview.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/using_udt.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/using_udt.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 12. Use with User-Defined Floating-Point Types</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/internals2/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">
+<link rel="next" href="math_toolkit/high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/internals2/test_data.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/high_precision.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="using_udt"></a>Chapter 12. Use with User-Defined Floating-Point Types</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section"><a href="math_toolkit/high_precision.html">Using Boost.Math with High-Precision
+    Floating-Point Libraries</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/high_precision/why_high_precision.html">Why use
+      a high-precision library rather than built-in floating-point types?</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/high_precision/use_multiprecision.html">Using
+      Boost.Multiprecision</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/high_precision/float128.html">Using with GCC's
+      __float128 datatype</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/high_precision/use_mpfr.html">Using With MPFR
+      or GMP - High-Precision Floating-Point Library</a></span></dt>
+<dt><span class="section">Using e_float Library</span></dt>
+<dt><span class="section">Using NTL Library</span></dt>
+<dt><span class="section"><a href="math_toolkit/high_precision/using_test.html">Using without
+      expression templates for Boost.Test and others</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/concepts.html">Conceptual Requirements for Real
+    Number Types</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/dist_concept.html">Conceptual Requirements for
+    Distribution Types</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/archetypes.html">Conceptual Archetypes for Reals
+    and Distributions</a></span></dt>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/internals2/test_data.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/high_precision.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/math/libs/math/doc/html/utils.html
==============================================================================
--- (empty file)
+++ sandbox/math/libs/math/doc/html/utils.html	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 4. Floating Point Utilities</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="Math Toolkit">
+<link rel="up" href="index.html" title="Math Toolkit">
+<link rel="prev" href="math_toolkit/owens_t.html" title="Owen's T function">
+<link rel="next" href="math_toolkit/rounding.html" title="Rounding Truncation and Integer Conversion">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/owens_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/rounding.html"><img src="images/next.png" alt="Next"></a>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="utils"></a>Chapter 4. Floating Point Utilities</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="section"><a href="math_toolkit/rounding.html">Rounding Truncation and Integer
+    Conversion</a></span></dt>
+<dd><dl>
+<dt><span class="section">Rounding Functions</span></dt>
+<dt><span class="section">Truncation Functions</span></dt>
+<dt><span class="section"><a href="math_toolkit/rounding/modf.html">Integer and Fractional Part
+      Splitting (modf)</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/fpclass.html">Floating-Point Classification: Infinities
+    and NaNs</a></span></dt>
+<dt><span class="section">Sign Manipulation Functions</span></dt>
+<dt><span class="section"><a href="math_toolkit/fp_facets.html">Facets for Floating-Point Infinities
+    and NaNs</a></span></dt>
+<dd><dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Examples</span></dt>
+<dt><span class="section">Portability</span></dt>
+<dt><span class="section">Design Rationale</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="math_toolkit/next_float.html">Floating-Point Representation
+    Distance (ULP), and Finding Adjacent Floating-Point Values</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="math_toolkit/next_float/nextafter.html">Finding the Next Representable
+      Value in a Specific Direction (nextafter)</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/next_float/float_next.html">Finding the Next
+      Greater Representable Value (float_next)</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/next_float/float_prior.html">Finding the Next
+      Smaller Representable Value (float_prior)</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/next_float/float_distance.html">Calculating the
+      Representation Distance Between Two Floating Point Values (ULP) float_distance</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/next_float/float_advance.html">Advancing a Floating
+      Point Value by a Specific Representation Distance (ULP) float_advance</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+</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 © 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan Råde, Gautam Sewani, Thijs
+      van den Berg, Daryle Walker, Benjamin Sobotta and Christopher Kormanyos<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="math_toolkit/owens_t.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="math_toolkit/rounding.html"><img src="images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/math/libs/math/doc/math.qbk
==============================================================================
--- sandbox/math/libs/math/doc/math.qbk	(original)
+++ sandbox/math/libs/math/doc/math.qbk	2013-05-09 07:52:44 EDT (Thu, 09 May 2013)
@@ -380,12 +380,12 @@
 ] [/ caution]
 ] [/ template discrete_quantile_warning]
 
-[/
+[block '''<bookinfo><releaseinfo>'''
 This manual is also available in
 [@http://sourceforge.net/projects/boost/files/boost-docs/
 printer friendly PDF format],
 and as a CD ISBN 0-9504833-2-X  978-0-9504833-2-0, Classification 519.2-dc22.
-]
+'''</releaseinfo></bookinfo>''']
 
 [mathpart overview Overview]
 [include overview/overview.qbk]